我有一个像这样的Python脚本:
class GuiApp(App):
def build(self):
#for i in range(24):
#Grid.add_widget(Button(text='Test'))
return Gui()
class Gui(BoxLayout):
pass
Run Code Online (Sandbox Code Playgroud)
我有一个像这样的 .kv 文件:
<Gui>:
BoxLayout:
orientation: 'vertical'
Button:
text: 'Top'
GridLayout:
id: Grid
cols: 5
rows: 5
Run Code Online (Sandbox Code Playgroud)
如何应用循环将 24 个按钮添加到 GridLayout?
我以为我可以像 python 注释中所示那样调用 id Grid,但是失败了。
如何应用循环将按钮添加到 kv 文件中带有 id Grid 的 GridLayout 中?
我似乎已经弄清楚如何正确执行循环:
py
class GuiApp(App):
def build(self)
g = Gui()
for i in range(24):
g.grid.add_widget(Button(text='test'))
return g
class Gui(BoxLayout):
grid = ObjectProperty(None)
Run Code Online (Sandbox Code Playgroud)
千伏
<Gui>:
grid: Grid
BoxLayout:
orientation: 'vertical'
Button:
text: 'Top'
GridLayout:
id: Grid
cols: 5
rows: 5
Run Code Online (Sandbox Code Playgroud)
为了让它工作,我需要引用它 _grid: .kv 文件中的网格由 ObjectProperty 找到,网格在 python 中使用时需要小写