Невозможно изменить значение виджета, добавленного 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)

0 ответов

Другие вопросы по тегам