kivy python 3.x循环添加小部件.kv

Dre*_*rew 4 python kivy

我有一个像这样的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 中?

Dre*_*rew 5

我似乎已经弄清楚如何正确执行循环:

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 中使用时需要小写