【发布时间】:2015-02-28 16:34:20
【问题描述】:
我有 2 个屏幕,由屏幕管理员管理。
我正在使用一个全局变量CHOSEN_ITEM 来保存一个由第一个屏幕更改的字符串变量。
此CHOSEN_ITEM 由第二屏幕显示。我知道必须使用 StringProperty,但我没有找到一个我自己可以理解的好例子……
from kivy.properties import ObjectProperty, StringProperty
...
CHOSEN_ITEM = ''
class FirstScreen(Screen):
...
def save_chosen(self):
global CHOSEN_ITEM
CHOSEN_ITEM = chosen_item
...
class SecondScreen(Screen):
...
global CHOSEN_ITEM
chosen_item = StringProperty(CHOSEN_ITEM)
def on_modif_chosenitem(self):
print('Chosen Item was modified')
self.bind(chosen_item=self.on_modif_chosenitem)
...
错误是:
File "_event.pyx", line 255, in kivy._event.EventDispatcher.bind (/tmp/pip-build-udl9oi/kivy/kivy/_event.c:3738)
KeyError: 'chosen_item'
我不知道如何将bind 与StringProperty 一起使用。
【问题讨论】:
标签: python kivy bind object-properties