我花了很多时间用Googling,但我不知道问题的答案。是否可以在元素 "MDDropDownItem "KivyMD中使用自定义字体。
请问,是否可以?
如果可以,怎么做?
下面是一个例子。
from kivy.lang import Builder
from kivymd.app import MDApp
from kivy.uix.floatlayout import FloatLayout
Builder.load_string(
'''
<TestScreen>:
MDDropDownItem:
pos_hint: {'center_x': .5, 'center_y': .5}
font_style: 'h1'
items: app.items
dropdown_bg: [1, 1, 1, 1]
''')
class TestScreen(FloatLayout):
pass
class Test(MDApp):
def build(self):
self.items = ['Item 1',
'Item 2',
'Item 3',
]
return TestScreen()
if __name__ == "__main__":
Test().run()
下面是没有和有的截图 font_style: 'h1'
这里是一个例子,一个可定制的 MDDropdownMenu
改变了大小和颜色。
from functools import partial
from kivymd.app import MDApp
from kivymd.uix.menu import MDDropdownMenu
from kivymd.toast import toast
from kivy.lang import Builder
from kivy.factory import Factory
Builder.load_string("""
<Menu@Screen>
MDRaisedButton:
size_hint: None, None
size: 3 * dp(48), dp(48)
text: 'Open menu'
opposite_colors: True
pos_hint: {'center_x': .5, 'center_y': .5}
on_release: app.open_menu(self)
""")
class Test(MDApp):
def callback_for_menu_items(self, text):
self.menu.dismiss()
toast(text)
def open_menu(self, button):
self.menu_items = [{"viewclass": "OneLineListItem",
"text": "Example item {}".format(i),
"font_style": "H5",
"theme_text_color": "Custom",
"text_color": [1, 1, 0, 1],
"bg_color": [1, 0, 1, 1],
"on_release": partial(self.callback_for_menu_items,
"Example item {}".format(i))}
for i in range(15)]
self.menu = MDDropdownMenu(items=self.menu_items, width_mult=4)
self.menu.open(button)
def build(self):
return Factory.Menu()
Test().run()
更新:添加了一个手动取消下拉菜单的方法。