KivyMD – MDDropDownItem 自定义字体和大小?

我花了很多时间用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'

Same output

解决方案:

这里是一个例子,一个可定制的 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()

更新:添加了一个手动取消下拉菜单的方法。

给TA打赏
共{{data.count}}人
人已打赏
未分类

在DT中,两个可编辑的列互相计算。

2022-9-9 4:02:16

未分类

在ngIf中加载API中的URL,并再次使用该值。

2022-9-9 4:02:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索