我想使用Spinner打印选定的元素。
我编写了以下测试代码。
main.py
#-*- coding: utf-8 -*-
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import StringProperty
class TextWidget(Widget):
text = StringProperty() # プロパティの追加
def __init__(self, **kwargs):
super(TextWidget, self).__init__(**kwargs)
self.text = ''
def print_text(self,text): # ボタンをクリック時
print(text)
class TestApp(App):
def __init__(self, **kwargs):
super(TestApp, self).__init__(**kwargs)
self.title = 'greeting'
def build(self):
return TextWidget()
if __name__ == '__main__':
TestApp().run()
test.kv
TextWidget:
<TextWidget>:
BoxLayout:
size: root.size
Spinner:
id:softwarename_dropDownList
size_hint: 1,0.3
text: 'test1'
values: 'test1', 'test2', 'test3'
on_text: root.print_text(self.text)
BoxLayout:
size_hint: 1,0.7
但是,启动GUI时,即使在Spinner中选择了“ test1”,也不会打印任何内容。选择“ test2”后再次选择“ test1”时,将打印“ test1”。
Kivy Spinner的on_text似乎仅在值更改时做出反应。 即使值没有更改,有没有办法做出反应?