我使用Kivy制作GUI,根据第一个小部件中的文本何时更改,更新其他小部件中的文本。
例如,在我的.kv文件中,我有类似的东西:
Spinner:
id: spinner1
on_text: root.update1()
text: 'blah'
values: ...
Spinner:
id: spinner2
on_text: root.update2()
text: 'blah'
values: ...
然后在我的Python脚本中,我得到了类似的东西:
class MyClass():
...
def update1(self):
self.ids.spinner2.text = 'some new text'
# do more stuff
def update2(self):
# do stuff
基本上我想更新spinner2的文本以反映我用spinner1选择的对象的属性,这似乎工作正常。
问题是,当我在update1函数中更改spinner2的文本时,spinner2将调用其关联的回调函数(update2),因为文本已更改。由于我设置的方式有额外的回调似乎没有多大影响,但我想减少我调用这些功能的次数。有没有人知道指定 on_text 属性的方法,无论更改是来自Python还是GUI?或者我将被迫运行回调,然后在里面检查?