[Python] KivyMD - MDLabel
이번엔 가장 흔하게 사용되는 label widget에 대해 살펴보겠습니다.
기능이 많아서 모든 기능을 설명하기 보단 많이 쓰일 몇 가지만 보여 드리겠습니다.
MDLabel
기본적으로 text property를 사용해서 메세지를 출력할 수 있어요.
from kivymd.app import MDApp
from kivymd.uix.boxlayout import MDBoxLayout
from kivymd.uix.label import MDLabel
class MainApp(MDApp):
def build(self):
self.theme_cls.theme_style = "Dark"
self.theme_cls.primary_palette = "Orange"
layout = MDBoxLayout(orientation='vertical')
label1 = MDLabel(text='Test String')
layout.add_widget(label1)
return layout
MainApp().run()
간단하게 Box layout을 하나 만들어서 label을 넣었습니다.
MDLabel with Bold, Italic, Strikethough, Underline
요번엔 문자열에 간단한 변화를 주겠습니다.
label2 = MDLabel(text='Hello KivyMD', bold=True)
layout.add_widget(label2)
흔히 아시는 굵게, 기울임, 취소선, 밑줄 등의 property를 boolean으로 설정하실 수 있습니다.
대표적으로 bold를 적용한 예제입니다.
MDLabel with Color
이번엔 색깔을 넣어보겠습니다.
label3 = MDLabel(text='Colored String1', theme_text_color='Error')
layout.add_widget(label3)
label4 = MDLabel(text='Colored String2', theme_text_color='Custom', text_color=[0, 0, 1, 1])
layout.add_widget(label4)
theme_text_color property를 사용해서 사전에 정의된 테마에 따른 색깔을 지정할 수 있습니다.
이 때, 지정이 가능한 옵션은 다음과 같습니다.
- Primary
- Secondary
- Hint
- Error
- Custom
- ContrastParentBackground
Custom을 지정하면 원하는 색상을 text_color property를 이용하여 지정할 수 있습니다.
'red', 'green', 'blue'와 같이 지정을 할 수도 있고, list 형태로 [red, green, blue] 혹은 [red, green, blue, alpha]로 지정할 수도 있습니다.
다만 이 때 허용 가능한 값의 범위는 0~1 입니다. 즉, 원하는 색상을 소수점으로 지정할 수 있어요.
MDLabel with Font
이번에는 폰트를 지정해 봅니다.
세세하게 설정을 할 수도 있지만, 간단하게 미리 정의된 스타일을 사용하는 방법을 보여드리겠습니다.
label5 = MDLabel(text='Font Style', font_style='H5')
layout.add_widget(label5)
- H1, H2, H3, H4, H5, H6
- Subtitle1, Subtitle2
- Body1, Body2
- Button
- Caption
- Overline
- Icon
이름만 보면 알 수 있듯이 편리하게 사용할 수 있고, 쉽게 통일감도 줄 수 있어서 이 방식을 소개드렸어요.
MDLabel with Alignment
다음은 정렬 방법입니다. 수평 정렬과 수직 정렬을 설정할 수 있어요.
label6 = MDLabel(text='Alignment', halign='center', valign='center')
layout.add_widget(label6)
수평 정렬은 다음의 옵션을 사용 가능합니다.
- auto, left, center, right, justify
수직 정렬은 다음의 옵션을 사용 가능합니다.
- bottom, middle, center, top
Conclusion
이 정도면 label을 사용하시는 데 필요한 기본적인 것은 다 되었다고 볼 수 있을 것 같아용.
참고하셔서 잘 사용해 보세요. ^^