Python MDDropDownMenu KivyMD的绑定按钮

Python MDDropDownMenu KivyMD的绑定按钮,python,binding,bind,kivy-language,kivymd,Python,Binding,Bind,Kivy Language,Kivymd,我在KivyMD的屏幕上有一个MDTextField。所需的步骤是在TextField的on_focus事件上打开MDDropDownMenu。此外,一旦您选择下拉菜单的一个元素,该菜单将被取消,选择的文本将添加到MDTextField 我成功地编写了程序的第一部分。尽管如此,我似乎还是不能正确理解按钮的绑定。我没有收到任何错误消息,但似乎从未调用绑定函数 这是我的Kivy代码: <TravelManagerWindow>: MDTextField: id:

我在KivyMD的屏幕上有一个MDTextField。所需的步骤是在TextField的on_focus事件上打开MDDropDownMenu。此外,一旦您选择下拉菜单的一个元素,该菜单将被取消,选择的文本将添加到MDTextField

我成功地编写了程序的第一部分。尽管如此,我似乎还是不能正确理解按钮的绑定。我没有收到任何错误消息,但似乎从未调用绑定函数

这是我的Kivy代码:

<TravelManagerWindow>:
    MDTextField:
        id: dest_dropdown_item
        pos_hint: {"x":0, 'center_y': 0.5}
        write_tab: False
        size_hint: 1, None
        icon_right: 'arrow-down-drop-circle-outline'
        text:'Seleccionar'
        on_focus: if self.focus: root.display_dropdown()
我相信甚至没有调用set_item函数,但是menu.open()确实会正确触发

有什么建议吗


非常感谢。请从master branch安装kivymd

pip是否安装了相同的问题

我得到了基维姆0.104.1

我通过安装0.104.2dev解决了这个问题


pip安装

在我写这篇文章时,安装kivy fromk master branch不仅没有解决问题,而且使问题变得更糟

编辑:找到非主分支安装的修复程序

self.menu_items=[{"text": f"{item}"} for item in self.itens]

self.menu = MDDropdownMenu(
                                caller=self.nome,
                                items=self.menu_items,
                                position="bottom",
                                width_mult=4,
                                #Here you'll put that bind func
                                callback = self.function 
                                )     

def function(self,instance):
    #Prints the text of the menu item instance
    print(instance.text)
self.menu_items=[{"text": f"{item}"} for item in self.itens]

self.menu = MDDropdownMenu(
                                caller=self.nome,
                                items=self.menu_items,
                                position="bottom",
                                width_mult=4,
                                #Here you'll put that bind func
                                callback = self.function 
                                )     

def function(self,instance):
    #Prints the text of the menu item instance
    print(instance.text)