将我的Widget添加到Kivy App __init__会导致出现空白屏幕并显示警告

时间:2015-05-25 18:18:38

标签: python pycharm kivy

我几天前开始使用Kivy Crash Course并想写一个记忆游戏。我的App类看起来像这样:

   class MemoryApp(App):
    def build(self):
        self.mgw = MemoryGameWidget()
        return self.mgw

此代码适用于我的.kv文件。

我总是使用Pycharm Code Inspect检查我的代码。 Pycharm建议将属性移动到 init

class MemoryApp(App):
def __init__(self, **kwargs):
    super().__init__(**kwargs)
    self.mgw = MemoryGameWidget()

但是当我运行该代码时,我得到一个空窗口并发出此警告:

 [WARNING           ] <__main__.MemoryGameWidget object at 0x02BCC490> have no cols or rows set, layout is not triggered.

有人可以解释发生了什么以及我做错了吗?

1 个答案:

答案 0 :(得分:0)

但是将它放在__init__中,您在加载kv规则之前实例化窗口小部件,因此不应用此规则。我会将它留在构建方法中并忽略pycharm警告。

编辑:实际上,解决警告的适当方法可能是添加“self.mgw = None&#39;在__init__中,从而满足pycharm,该属性正确存在,而不会改变它在构建方法中实际正确设置的方式。