python - 关于 Spinner 小部件在 Kivy / Python 中如何工作的小疑问
问题描述
我需要有关 Spinner 小部件的帮助。我的第一个问题是如何更改微调器下拉列表中按钮的大小,因为我的活动按钮微调器很小,但我的下拉列表是文本,所以它需要足够宽才能阅读文本(我将通过照片举例说明问题)。第二个问题是我不希望微调器下拉列表中的文本填充按钮(我将在照片中举例说明)。第三个问题是我希望在微调器内部可以调用类应用程序内部的函数,定义下拉列表中的值之一(我将在照片中举例说明)。
主文件
...
Spinner:
size_hint: None, None
width: '30sp'
height: '30sp'
border: 0,0,0,0
background_normal: 'imag1.png'
background_down: 'imag2.png'
values: "gelo","carvão","salmão"
on_text: 'gelo'
on_release: app.IluminanciaMaceió() #I know it's wrong, but I want the action to be this, how could I fix it?
...
主文件
...
class MainApp(App):
texture = ObjectProperty()
def iluminanciamaceio(self):
mac = 21000
mac = str(21000)
self.root.get_screen('primeira').ids.ie.text = mac
self.root.get_screen('primeira').ids.nlocaliza.text = 'Maceió'
...
解决方案
Spinner
没有选项允许 的宽度DropDown
与Spinner
自身不同。您可以定义自己的扩展,Spinner
即具有该能力。
Button
要在单击a 时调用方法Spinner
DropDown
,只需使用 的on_text
事件Spinner
:
on_text: app.some_method(self.text)
然后,在该方法中,您可以根据文本决定要做什么:
def some_method(self, button_text):
print('Button text:', button_text)