Python Kivy(kivyMD)如何获取MDDropdownMenu的值

时间:2018-08-15 14:59:49

标签: python drop-down-menu kivy kivy-language

我试图通过以下代码在我的kv文件中获取对MDDropwdownMenu的选择

MDRaisedButton

在我的 MDRaisedButton: id: select_warning_image_Button text: "Menu labels" opposite_colors: True elevation_normal: 0 on_release: MDDropdownMenu(items=app.menu_labels, width_mult=4).open(self) 中(见下文),我有一个名为main.py的类,该类继承自MainApp。在此类中,我创建了属性变量App。我想使用函数menu_labels将变量change_variable的值设置为菜单的值。但是我似乎无法使用self.change_variable(...)。在下拉列表中选择特定值后,是否有一个值可以触发函数?

VARIABLE

1 个答案:

答案 0 :(得分:3)

在输出中,选择了json()。有关详细信息,请参见代码段,示例和输出。

kv文件

  1. Label2添加类别规则
  2. 添加<MDMenuItem>:事件以调用App类中的on_release方法并将change_variable()传递给它。

代码段-kv文件

self.text

示例

main.py

<MDMenuItem>:
    on_release: app.change_variable(self.text)

main.kv

from kivy.app import App
from kivymd.theming import ThemeManager


class MainApp(App):
    title = "KivyMD MDDropdownMenu Demo"
    theme_cls = ThemeManager()

    VARIABLE = ""

    menu_labels = [
        {"viewclass": "MDMenuItem",
         "text": "Label1"},
        {"viewclass": "MDMenuItem",
         "text": "Label2"},
    ]

    def change_variable(self, value):
        print("\nvalue=", value)
        self.VARIABLE = value
        print("\tself.VARIABLE=", self.VARIABLE)


if __name__ == "__main__":
    MainApp().run()

输出

Img01 - MDDropdownMenu opened Img02 - Selected Label2