我的按钮显示在DropDown的顶部,它们是我的屏幕加载时的一部分。希望他们不要那样做。下面的图片。
kv文件:
<MainScreen>:
BoxLayout:
id: menu_layout
on_parent: root.class_level_list_generator()
Button:
id: btn_class_dropdown
text: 'Select a class...'
size_hint: (.25, .25)
on_release: dd_class.open(self)
DropDown:
id: dd_class
Button:
id: btn_level_dropdown
text: 'Select a level...'
size_hint: (.25, .25)
on_release: dd_level.open(self)
DropDown:
id: dd_level
Button:
id: btn_manager
text: 'Manage'
size_hint: (.25, .25)
on_release: root.f_btn_manager()
Button:
id: btn_exit
text: 'Exit'
size_hint: (.25, .25)
on_release: app.stop()
python将按钮添加到下拉列表中:
for l in levels:
# manually specify button height and label it by level number
btn = Button(text=str(l), size_hint_y=None, height=50)
# update button text with that of selection
btn.bind(on_release=lambda btn:
self.ids.dd_level.select(btn.text))
# add button to dropdown
self.ids.dd_level.add_widget(btn)
self.ids.dd_level.bind(on_select=lambda instance, x: setattr(self.ids.btn_level_dropdown, 'text', x))
希望DropDown的项目在单击按钮之前不显示。
DropDown项目未正确显示:
但是点击DropDown按钮后它们工作正常:
答案 0 :(得分:0)
我的情况不同,因为下拉列表与我的按钮处于同一级别,在您的按钮中,下拉列表是按钮的子级。但是,您只需要添加on_parent: dd_level.dismiss()
就可以按下这样的按钮:
Button:
id: btn_level_dropdown
text: 'Select a level...'
size_hint: (.25, .25)
on_release: dd_level.open(self)
on_parent: dd_level.dismiss()
DropDown:
id: dd_level
如果这不能解决问题,请尝试将下拉列表放在同一级别。就我而言,这解决了它。