当循环遍历动态添加的StackLayout
的子级时(通过循环),所有子级的位置输出为0,0
。一个简单的例子:
import kivy
from kivy.app import App
from kivy.uix.stacklayout import StackLayout
from kivy.uix.button import Button
class ThisApp(App):
def build(self):
layout = StackLayout(spacing=10,padding=10)
for i in range(3):
layout.add_widget(Button(size_hint=(None,None)))
print(layout.children[i].pos)
return layout
ThisApp().run()
输出:
^{pr2}$为什么会这样?显然,小部件的位置不在窗口的左下角。我完全不明白为什么会这样。StackLayout
运行正常,位置正确,但不知何故小部件的位置没有注册?在
布局不会立即执行,但在必要时,即显示小部件时,因此必须在显示帧后立即使用
Clock.schedule_once(...)
调用函数。在输出:
^{pr2}$相关问题 更多 >
编程相关推荐