在我的KV文件中,我在窗口中创建了一个Spinner小部件,其中包含大约10个项目。但是,当我打开下拉菜单时,它将填充窗口的整个垂直空间。
我在网上找到了一些解决方案,但是它们仅使用直接的Python代码进行显示。
示例:
spinner = Spinner(text='Test', values=('Hi', 'how', 'are', 'you', '?'))
spinner.dropdown_cls.max_height = 100
这是我当前的KV代码:
Spinner:
size_hint_x: None
width: 300
font_size: 30
text: "Static"
values: "Static", "Breathing", "Spectrum Cycle", "Rainbow", "Wipe", "Bullet", "Strobe", "Starlight", "Nightlight"
我的问题是如何在我的KV代码中设置'dropdown_cls.max_height'属性?
答案 0 :(得分:1)
在kv文件中,执行以下操作。有关详细信息,请参阅代码段和示例。
创建一个类规则<MyDropdown@DropDown>:
并添加max_height: 100
。
<MyDropdown@DropDown>:
max_height: 100
将size_hint_x: None
替换为size_hint: (None, None)
,以防止Spinner填充窗口的整个垂直空间。
from kivy.lang import Builder
from kivy.base import runTouchApp
runTouchApp(Builder.load_string('''
#:import Factory kivy.factory.Factory
<MySpinnerOptions@SpinnerOption>:
background_color: .4, .4, .4, 1
<MyDropdown@DropDown>:
max_height: 100
<MySpinner@Spinner>:
size_hint: (None, None)
width: 300
font_size: 30
text: "Static"
values: "Static", "Breathing", "Spectrum Cycle", "Rainbow", "Wipe", "Bullet", "Strobe", "Starlight", "Nightlight"
dropdown_cls: Factory.MyDropdown
option_cls: Factory.MySpinnerOptions
GridLayout:
cols: 1
MySpinner:
'''))