有没有办法在自定义小部件中执行self.add_widget()?我有一个非常大的python文件,我想分开。在这样做,我有我的主窗口有几个不同的小部件,移动到一个单独的类。最初我使用循环和add_widget()使用.kv文件中的id填充此小部件。我把它移出去了,它应该返回一个放入.kv文件的GridLayout。
编辑:
我在解释中犯了一个小错误,它不是像class custom(Widget):
这样的自定义窗口小部件,而是自定义GridLayout class custom(GridLayout):
在一个函数中我有self.add_widget(Button())
。运行时我收到错误:AttributeError: 'custom' object has no attribute '_trigger_layout'
答案 0 :(得分:0)
你想什么时候添加,你想要添加的是实际问题......
如果您有一个自定义窗口小部件(继承自Widget或其他一些窗口小部件),您可以在init或函数中调用self.add_widget(arg)
。让自己成为传递窗口小部件的关键字,您可以像Custom(what=Button())
一样使用它来抓住what
,如下所示:
class Custom(Widget):
def __init__(self, **kw):
super(Custom, self).__init__(**kw)
self.add_widget(kw['what'])
要在功能中使用它,请将what
保存在类变量(self.<var>
)中,稍后在self.add_widget(self.<var>)