Форум сайта python.su
Доброго времени суток уважаемые форумчане!
Помогите решить проблему.При нажатии на кнопку,на самой кнопке должен менятся текст,это сделать удалось.
Но и в поле Label должен менятся текст,вот это ни как у меня не получается.Выводится ошибка AttributeError: ‘Button’ object has no attribute ‘label’
Буду благодарен за помощь.
main.py
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.properties import ObjectProperty
class Container(GridLayout):
default_var_butt_text = ObjectProperty()
default_var_lab_text = ObjectProperty()
default_var_butt_status = 1
default_var_butt_text =
default_var_lab_status = 1
default_var_lab_text =
def __init__(self, var_butt_status=default_var_butt_status,
var_butt_text=default_var_butt_text,
var_lab_status=default_var_lab_status,
var_lab_text=default_var_lab_text,
**kwargs):
super().__init__(**kwargs)
self.var_butt_status = var_butt_status
self.var_butt_text = var_butt_text
self.var_lab_status = var_lab_status
self.var_lab_text = var_lab_text
def fun_change_text_button(self, arg_change_butt):
arg_change_butt.text = self.default_var_butt_text
if not self.default_var_butt_status:
self.default_var_butt_status = 1
else:
self.default_var_butt_status = 0
def fun_change_text_label(self, arg_change_lab):
arg_change_lab.text = self.default_var_lab_text
if self.default_var_lab_status:
self.default_var_lab_status = 1
else:
self.default_var_lab_status = 0
class SaunaApp(App):
def build(self):
return Container()
if __name__ == ‘__main__’:
SaunaApp().run()
sauna.kv
<Container>
cols: 2
rows: 1
padding: 50
default_var_but_text: default_var_but_text_id
default_var_lab_text: default_var_lab_text_id
Button:
id: default_var_but_text_id
text:
‘Включить сауну’
on_release:
root.fun_change_text_button(self)
on_release:
root.fun_change_text_label(self.label)
Label:
id: default_var_lab_text_id
text:
‘Сауна выключена’
Офлайн
https://kivy.org/doc/stable/api-kivy.uix.button.html
есле мне не изменяет память
Button: id: default_var_but_text_id text: ‘Включить сауну’ on_release: root.fun_change_text_button(self);root.fun_change_text_label(self.label)
Офлайн