[英]How to code drop-down list properly in kivy-language?
我正在测试下拉列表以删除我的另一个代码中的一些按钮,但我无法让它工作。 在 kivy 的主页上,当谈到 kv lang 时,解释真的很肤浅。
我想做的是这个,按钮更少。 但我想在 kv lang 中做到这一点。 在我的测试代码中,下拉列表被“打开”,但它实际上什么也没显示。 你必须点击应该是一个按钮的文本片段才能关闭它,然后它就不会再打开了。
我如何正确编码?
这是我的 kv 代码:
<CustomDropDown>:
Button:
id: btn
text: 'hello'
on_release: dropdown.open(self)
DropDown:
id: dropdown
size_hint_y: None
on_select: btn.text = "{}".format(args)
Button:
text: 'btn 1'
on_release: dropdown.select(self.text)
Button:
text: 'btn 2'
on_release: dropdown.select(self.text)
Button:
text: 'btn 3'
on_release: dropdown.select(self.text)
这是我的 Python 代码:
from kivy.app import App
from kivy.uix.widget import Widget
class CustomDropDown(Widget):
pass
class TestesApp(App):
def build(self):
return CustomDropDown()
if __name__ == "__main__":
TestesApp().run()
您可以创建CustomDropDown
并将其作为Widget
的Property
存储在kv
,然后CustomDropDown
open()
它。 这是您的代码的修改版本:
from kivy.app import App
from kivy.lang import Builder
kv = '''
#:import Factory kivy.factory.Factory
FloatLayout:
Button:
dropdown: Factory.CustomDropDown()
id: btn
pos_hint: {'center_x':0.5, 'center_y':0.5}
size_hint: None, None
size: 100, 44
text: 'hello'
on_release: self.dropdown.open(self)
<CustomDropDown@DropDown>:
id: dropdown
size_hint_y: None
on_select: app.root.ids.btn.text = "{}".format(args[1])
Button:
text: 'btn 1'
on_release: dropdown.select(self.text)
size_hint_y: None
height: 44
Button:
text: 'btn 2'
on_release: dropdown.select(self.text)
size_hint_y: None
height: 44
Button:
text: 'btn 3'
on_release: dropdown.select(self.text)
size_hint_y: None
height: 44
'''
class TestesApp(App):
def build(self):
return Builder.load_string(kv)
if __name__ == "__main__":
TestesApp().run()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.