В моем RootWidget у меня есть метка и две кнопки. Я хочу динамически изменять текст метки всякий раз, когда нажимается одна из кнопок.Рефактор on_press в правиле класса
Вот минимальный рабочий пример того, как я это делаю в данный момент.
from kivy.lang import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.app import App
w = Builder.load_string('''
<RootWidget>:
id: root_widget
Label:
id: label
text: 'Push a button'
Button:
text: '1'
on_press: label.text = self.text
Button:
text: '2'
on_press: label.text = self.text
''')
class RootWidget(BoxLayout):
pass
class MainApp(App):
def build(self):
return RootWidget()
if __name__ == '__main__':
MainApp().run()
Очевидно, что я хочу, чтобы реорганизовать линию on_press: label.text = self.text
. Мои первые попытки закончились
<RootWidget>:
id: root_widget
Label:
id: label
text: 'Push a button'
MyButton:
text: '1'
MyButton:
text: '2'
<MyButton>:
on_press: label.text = self.text
Но очевидно MyButton
-класса не знает свойство label
в RootWidget
-класса. И правила класса внутри правил класса также не допускаются.
Есть ли способ выполнить привязку on_press
-действия динамически?
haha, 8 секунд медленнее;) – zeeMonkeez
Забавный, я думаю, что до сих пор со мной так и не дошло. Я пропускаю ответы на вопросы с комментариями/ответами. : D – KeyWeeUsr
Этот был низко висящий фрукт :) – zeeMonkeez