Python

[Python] KivyMD - MDLabel

llHoYall 2022. 9. 27. 23:00

이번엔 가장 흔하게 사용되는 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을 사용하시는 데 필요한 기본적인 것은 다 되었다고 볼 수 있을 것 같아용.

참고하셔서 잘 사용해 보세요. ^^