【问题标题】:custom widget with child widgets kivy带有子小部件的自定义小部件 kivy
【发布时间】:2016-05-10 06:15:28
【问题描述】:

有没有办法在自定义小部件中执行 self.add_widget() ?我有一个非常大的 python 文件,我想拆分它。在这样做时,我所拥有的是我的主窗口,它有几个不同的小部件,移动到一个单独的类中。最初我使用循环填充这个小部件,并使用 .kv 文件中的 id add_widget()。我将它移出,它应该返回一个放置到 .kv 文件中的 GridLayout。

编辑: 我在解释中犯了一个小错误,它不是像 class custom(Widget): 这样的自定义小部件,而是自定义 GridLayout class custom(GridLayout):

在函数内部我有self.add_widget(Button())。运行时出现错误:AttributeError: 'custom' object has no attribute '_trigger_layout'

【问题讨论】:

    标签: python kivy


    【解决方案1】:

    你想什么时候加,你想加什么问题其实是……

    如果您有自定义小部件(继承自 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>) 中使用它

    【讨论】:

      猜你喜欢
      • 2014-05-12
      • 1970-01-01
      • 2013-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多