Я делаю макет Kivy с использованием языка Kivy, и я заметил, что не могу использовать вложенные параметры при определении холста виджета.Вот что я имею в виду:
Пример 1 - все работает нормально
<MainWidget>:
Label:
text: "Here is a button"
var1: 1,0,0,1
canvas.before:
Color:
rgba: self.var1
Rectangle:
pos: self.pos
size: self.size
Пример 2 - это ошибка с TypeError: 'NoneType' object is not iterable
<MainWidget>:
Label:
text: "Here is a button"
var1: 1,0,0,1
var2: self.var1
canvas.before:
Color:
rgba: self.var2
Rectangle:
pos: self.pos
size: self.size
Python-код для обоих
from kivy.app import App
from kivy.uix.widget import Widget
class MainApp(App):
def build(self):
return MainWidget()
class MainWidget(Widget):
pass
MainApp().run()
Я думаю, что проблема здесь в том, что var2
равен None, пока не назначено var1
, но это не такпроизойдет до тех пор, пока объект не будет инициирован.Есть ли способ сделать то, что я пытаюсь сделать здесь?
NB Кажется, это только проблема с холстом виджета.Я могу сделать, например, это без проблем:
:
Label:
text: "Here is a button"
var1: 1,0,0,1
var2: self.var1
color: self.var2