2017-01-12 11 views

ответ

0

Kivy может сделать это автоматически для вас - но только если var1 является kivy-свойством. Вы можете узнать о них подробнее here

Если этого не произошло, это означает, что var1 не является свойством kivy. Вы должны установить их в качестве атрибутов класса, например .:

class MyWidget 
    var1 = NumericProperty() 
    [...] 

, а затем в Kv:

MyWidget: 
    Button: 
     text: root.var1 

или что вы хотите. Пока значение, которое вы устанавливаете, является свойством kivy, оно должно работать. Иногда, если значение на правой стороне является сложным (text: "" if root.var is None else getattr("mystring", root.var)), все не так легко получается, но если вы запустите в этом случае, есть другие вопросы, связанные с stackoverflow, которые вам помогут.

0

Вы можете получить доступ к собственности напрямую, конечно. Нет необходимости делать text: var1. Это довольно распространенные способы, но кроме них есть даже setattr() или некоторые другие.

Благодаря примеру:

<Buttons_Root>: 
    Button: 
     id: mybutton 

→ ру:

b = Buttons_Root() 
b.ids.mybutton.text = 'something' 

Через своего родителя:

<MyBoxLayout>: 
    Button: 

→ ру:

box = MyBoxLayout() 
box.children[0].text = 'something' 

 Смежные вопросы

  • Нет связанных вопросов^_^