Kivy:在GUI和Python中区分编辑小部件文本

时间:2016-09-28 15:22:00

标签: python user-interface kivy

我使用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?或者我将被迫运行回调,然后在里面检查?

0 个答案:

没有答案