我如何在KIVYMD中实施dropdownitem,

时间:2020-06-30 08:28:28

标签: python kivy dropdown kivy-language

由于我只是在弄乱代码,我目前只有一个小规模的GUI构建,但是经过长时间的研究,我似乎无法弄清的是如何在我的代码中实现一个淹没列表/项目。设置屏幕。

可能很难解释,但这是我目前的main.py

from kivymd.app import MDApp
from kivy.uix.screenmanager import ScreenManager
from kivy.lang import Builder
from kivymd.uix.menu import MDDropdownMenu
from kivy.properties import ObjectProperty


class ExampleApp(MDApp):


    def build(self):
        kv = Builder.load_file("my.kv")
        return kv


ExampleApp().run()

这是我的kv文件

ScreenManager:
    id: screen_manager

    Screen:
        name: "land"
        AnchorLayout:
            anchor_x: "center"
            anchor_y: "top"

            BoxLayout:
                orientation: 'vertical'
                size_hint: 0.2,0.2

                MDLabel:
                    text: "What is your weight?"

                BoxLayout:
                    orientation: "horizontal"

                    MDTextField:
                        input_filter: "float"
                        on_text_validate:

                    MDDropDownItem:
                        text: "a"

                    MDIconButton:
                        icon: "android"



    Screen:
        name: "second"
        MDLabel:
            text: "Second"

现在我不了解的部分是如何从陆地屏幕上使MDDropdownItem发挥作用,但又只能使其成为该屏幕的子对象

另一个问题是,说我可以使列表/下拉菜单起作用,如何在不使用范围内的for循环的情况下将自定义文本添加到打开的列表中

从理论上讲,这样的下拉菜单

  • 可点击列表
    • 选项1
    • 选项2#唯一的区别是它的文本与自定义文本列表不同

-可点击列表

  • 布拉
  • Mawh 2
  • 随机

1 个答案:

答案 0 :(得分:0)

在MDdropdownMenu中放置自定义文本和图标的方法是在列表中放置几个​​字典。

示例:

menu_items = [
{"icon": "git", "text": "Blah"}
{"icon": "android", "text": "Mawh 2"}
{"icon": "stack-overflow", "text": "Random"}
]

关于第一个问题,我不太明白你的意思,你能说得更清楚吗?