我目前正在尝试用猕猴桃制作词汇训练师,以便可以在手机上使用它。但是我还是停留在下拉菜单上。我使用了来自kivy Wiki的下拉菜单示例,并进行了一些更改,使其适合我的现有代码。 我的问题是现在下拉菜单没有显示,并且python也没有给我一个错误。我已经尝试了一些其他可能的解决方案,这些解决方案也不适用于我,也无法通过try进行调试-除了和pycharm调试器。
class FloatLayout(FloatLayout):
def __init__(self, **kwargs):
super(FloatLayout, self).__init__(**kwargs)
self.dropdown = DropDown()
self.languages = ["language1", "language2", "language3"]
for i in self.languages:
btn = Button(text="%r" % i, size_hint_y=None, height=30)
btn.bind(on_release=lambda btn: self.dropdown.select(btn.text))
self.dropdown.add_widget(btn)
self.dropdownButton = Button(text="Language selection", size_hint=(None, None), pos_hint={"x": 0.5, "top": 0.5})
self.dropdownButton.bind(on_release=self.dropdown.open)
self.dropdown.bind(on_select=lambda instance, x: setattr(self.dropdownButton, "text", x))
class KivyGUI(App):
def build(self):
return FloatLayout()
if __name__ == "__main__":
runKivy()
所有帮助,我们感激不尽。谢谢!
答案 0 :(得分:0)
需要将self.dropdownButton
添加到根窗口小部件FloatLayout
。
self.add_widget(self.dropdownButton)
将runKivy()
替换为KivyGUI().run()
self.dropdown.bind(on_select=lambda instance, x: setattr(self.dropdownButton, "text", x))
self.add_widget(self.dropdownButton)
class KivyGUI(App):
def build(self):
return FloatLayout()
if __name__ == "__main__":
KivyGUI().run()