Невозможно изменить значение виджета, добавленного add_widget
- 2017 12/23 14:00 ** Я отредактировал для более понятного понимания ** -
Здравствуйте все. Я написал простой код, поэтому, пожалуйста, проверьте его.
Моя цель - изменить значение "text" и "cooooop" для Number, добавленное с помощью add_widget().
Но не может измениться.
Я думаю, что это вызвано ссылкой на полицейского родительского виджета.
Но я не знаю правду.
Как я должен сделать?
Пожалуйста, помогите мне!!
#python
from kivy.app import App
from kivy.uix.behaviors import ButtonBehavior
from kivy.uix.label import Label
from kivy.uix.gridlayout import GridLayout
from kivy.properties import ObjectProperty
class Number(Label):
pass
class Wrapper(GridLayout):
pass
class Adder(ButtonBehavior, Label):
rooting = ObjectProperty(None)
def on_release(self):
self.rooting.add_widget(Number(
rooting = self.rooting,
cooooop = self.rooting.cop,
text = self.rooting.cop,
))
class Changer(ButtonBehavior, Label):
rooting = ObjectProperty(None)
def on_release(self):
self.rooting.cop = 'Thank you'
class TestApp(App):
def build(self):
pass
TestApp().run()
#kvfile
<Number>:
font_size: sp(15)
halign: 'center'
markup: True
valign: 'top'
size_hint_y: None
text_size: self.width, sp(50)
height: sp(30)
multiline: False
<Adder>:
text: "Add"
font_size: sp(15)
halign: 'center'
markup: True
valign: 'middle'
size_hint_y: None
text_size: self.width, sp(50)
height: sp(30)
multiline: False
col: 1.000 ,0.5843 ,0.000, 1
on_release: self.col = 1.000 ,0.5843 ,0.000, 1
on_press: self.col = 1.000 ,0.5843 ,0.000, .5
canvas.before:
Color:
rgba: self.col
RoundedRectangle:
pos: self.pos
size: self.size
radius: [sp(12)]
<Changer>:
text: "Change"
font_size: sp(15)
halign: 'center'
markup: True
valign: 'middle'
size_hint_y: None
text_size: self.width, sp(50)
height: sp(30)
multiline: False
col: 0.000 ,0.4784 ,1.000, 1
on_release: self.col = 0.000 ,0.4784 ,1.000, 1
on_press: self.col = 0.000 ,0.4784 ,1.000, .5
canvas.before:
Color:
rgba: self.col
RoundedRectangle:
pos: self.pos
size: self.size
radius: [sp(12)]
Wrapper:
padding: 0, 300, 0, 0
pos_hint: {'top': 1, 'center_x': .5}
cols: 1
size_hint: .3, None
id: rooting
height: self.minimum_height
cop: 'Change me'
spacing: 0, 50
Adder:
rooting: rooting
Changer:
rooting: rooting
Label:
size_hint_y: None
height: sp(40)