KivyPython3.x循环添加小部件.kv
我有这样一个python脚本:KivyPython3.x循环添加小部件.kv,python,kivy,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 <Gui>: BoxLayout: orientation: 'vertical' But
class GuiApp(App):
def build(self):
#for i in range(24):
#Grid.add_widget(Button(text='Test'))
return Gui()
class Gui(BoxLayout):
pass
<Gui>:
BoxLayout:
orientation: 'vertical'
Button:
text: 'Top'
GridLayout:
id: Grid
cols: 5
rows: 5
我有这样一个.kv文件:
class GuiApp(App):
def build(self):
#for i in range(24):
#Grid.add_widget(Button(text='Test'))
return Gui()
class Gui(BoxLayout):
pass
<Gui>:
BoxLayout:
orientation: 'vertical'
Button:
text: 'Top'
GridLayout:
id: Grid
cols: 5
rows: 5
:
盒子布局:
方向:“垂直”
按钮:
文字:“顶部”
网格布局:
id:网格
科尔斯:5
行数:5
如何应用循环将24个按钮添加到GridLayout
我原以为可以像python注释中所示那样调用id网格,但这失败了
如何应用循环,将按钮添加到id为Grid的kv文件中的GridLayout
def build(self):
layout = GridLayout()
for i in range(24): layout.add_widget(...)
return layout
我想至少
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)
我似乎已经想出了如何实现循环的方法: 派克 千伏
:
网格:网格
盒子布局:
方向:“垂直”
按钮:
文字:“顶部”
网格布局:
id:网格
科尔斯:5
行数:5
为了让它工作,我需要在ObjectProperty找到的.kv文件中引用它_grid:grid,网格在python中使用时需要小写您的意思是说更多吗?虽然它可以自己工作,我需要将这些小部件添加到.kv文件中现有的子小部件BoxLayout>GridLayout中。好吧,也许我的新解决方案会起作用。。。不确定。。。在第二个版本中没有安装kivy,我得到了AttributeError:“NoneType”对象没有attribue“add_widget”。这发生在g.Grid.add_小部件上。我以前在尝试使用ObjectProperty时遇到过这个问题你必须告诉它。。。我忘了怎么。。。但是有点像。。。可能只是
Grid=ObjectProperty(GridLayout())
。。。dang我讨厌那种.kv语言用python构建小部件要好得多:PNice one,正是我想要的!嗨,参加聚会有点晚了。在这里,您已将其用于主应用程序。如果我正在使用屏幕管理器,并且我有一个屏幕,其中我需要使用kv文件使用for循环,该怎么办。