Python
[Python] KivyMD - MDIcon
llHoYall
2022. 9. 28. 21:04
이번에는 Icon에 대해 살펴보겠습니다.
Material Design에서 제공하는 아이콘들을 쉽게 가져다 쓸 수 있어요.
아이콘의 종류와 이름은 아래 링크를 참고해주세요.
https://materialdesignicons.com/
MDIcon
기본적인 아이콘 사용법은 다음과 같습니다.
from kivymd.app import MDApp
from kivymd.uix.boxlayout import MDBoxLayout
from kivymd.uix.label import MDIcon
class MainApp(MDApp):
def build(self):
self.theme_cls.theme_style = "Dark"
self.theme_cls.primary_palette = "Orange"
layout = MDBoxLayout()
icon1 = MDIcon(icon='gmail')
layout.add_widget(icon1)
return layout
MainApp().run()
Box layout으로 수평 배치를 하고, gmail 아이콘을 하나 추가했습니다.
MDIcon with Badge
모바일 앱을 보면 아이콘에 배지가 달린 모습을 많이 보셨을 텐데, 그 기능입니다.
icon2 = MDIcon(icon='facebook', badge_icon='numeric-7')
layout.add_widget(icon2)
icon3 = MDIcon(icon='twitter', badge_icon='numeric-3', badge_bg_color='blue')
layout.add_widget(icon3)
icon4 = MDIcon(icon='apple', badge_icon='numeric-5', badge_icon_color=[0, 1, 0, 0.8])
layout.add_widget(icon4)
icon5 = MDIcon(icon='android', badge_icon='numeric-2', badge_font_size=12)
layout.add_widget(icon5)
badge_icon property에 숫자 아이콘을 넣으면 이쁘게 배지로 달립니다.
크기와 색깔 변경도 손쉽게 가능합니다.
색깔은 ColorProperty를 따르기 때문에 문자열로 색깔 이름을 넣어주거나, [red, green, blue] 혹은 [red, green, blue, alpha] 형태의 리스트를 사용하시면 되요.
설정한대로 잘 반영이 되네요. ^^
Conclusion
기본적인 아이콘 사용은 이것으로 가능하실 거에요.
다만, 크기 변경 등의 기능은 현재로써는 kivy language로 작성해서 builder를 사용하는 방법 밖에는 안보이더라고요.
개인적으로 그런 방식은 비선호인데.....
관련 자료도 부족하고 해서 뭐하나 할 때마다 헤딩이 조금 필요하지만, 파이썬으로 이렇게 간단하게 이쁜 앱을 만들 수 있다는 장점 때문에 사용할 수 밖에 없죠. ㅋ