我已经多次遇到这个问题,所以要么我的方法错误,要么我错过了一个关键特性。在
通常,我需要在widgets init方法中设置初始图形信息。这不起作用,因为当kivy图形第一次被创建时,它们位于pos:0, 0
和{
有没有办法强迫kivy在widgets init中布局?我看到了do_layout
,但还没有找到如何进入布局来尝试它。在
下面是一个例子:
Python:
class Main(Widget):
route = ListProperty([])
def __init__(self, *args, **kwargs):
super(Main, self).__init__(**kwargs)
self.route = [0, 0, self.width, self.height]
class RouteBuilderApp(App):
def build(self):
main = Main()
return main
if __name__ == "__main__":
RouteBuilderApp().run()
千伏:
^{pr2}$输出:
您需要使用属性绑定。这在kv语言中非常简单,您可以像这样更改您的kv:
通过直接绑定
Line
的点,您甚至不需要中间的route
属性。在相关问题 更多 >
编程相关推荐