未调用 Kivy MDDropDownMenu 回调函数
Kivy MDDropDownMenu callback function is not being invoked
所以下拉菜单会显示所有选项,但单击它们时不会调用回调函数。
可能是什么问题?
提前致谢!
这里是 main.py:
def __init__(self, **kwargs):
self.screen = Builder.load_file('main.kv')
channels = ['channel1', 'channel2', 'channel3', 'channel4']
self.channels_menu = MDDropdownMenu(
caller=self.screen.ids.add_client_screen.ids.channels_drop_item,
items=[{"text": i} for i in channels],
position="center",
width_mult=4,
)
self.channels_menu.bind(on_release=self.menu_callback)
def menu_callback(self, instance_menu, instance_menu_item):
print(instance_menu, instance_menu_item)
def build(self):
return self.screen
这里是 .kv:
<AddClientScreen>:
text: "AddClient"
MDBoxLayout:
orientation: "vertical"
MDBoxLayout:
spacing: 50
orientation: "vertical"
size_hint: 1, 0.65
MDDropDownItem:
id: channels_drop_item
text: "Channel"
on_release: app.channels_menu.open()
从 master 分支更新 KivyMD 库。新 API 仅在主版本 (dev) 中可用 - https://github.com/kivymd/KivyMD/blob/master/kivymd/__init__.py#L35
所以下拉菜单会显示所有选项,但单击它们时不会调用回调函数。 可能是什么问题? 提前致谢! 这里是 main.py:
def __init__(self, **kwargs):
self.screen = Builder.load_file('main.kv')
channels = ['channel1', 'channel2', 'channel3', 'channel4']
self.channels_menu = MDDropdownMenu(
caller=self.screen.ids.add_client_screen.ids.channels_drop_item,
items=[{"text": i} for i in channels],
position="center",
width_mult=4,
)
self.channels_menu.bind(on_release=self.menu_callback)
def menu_callback(self, instance_menu, instance_menu_item):
print(instance_menu, instance_menu_item)
def build(self):
return self.screen
这里是 .kv:
<AddClientScreen>:
text: "AddClient"
MDBoxLayout:
orientation: "vertical"
MDBoxLayout:
spacing: 50
orientation: "vertical"
size_hint: 1, 0.65
MDDropDownItem:
id: channels_drop_item
text: "Channel"
on_release: app.channels_menu.open()
从 master 分支更新 KivyMD 库。新 API 仅在主版本 (dev) 中可用 - https://github.com/kivymd/KivyMD/blob/master/kivymd/__init__.py#L35