我几天前开始使用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.
有人可以解释发生了什么以及我做错了吗?
答案 0 :(得分:0)
但是将它放在__init__
中,您在加载kv规则之前实例化窗口小部件,因此不应用此规则。我会将它留在构建方法中并忽略pycharm警告。
编辑:实际上,解决警告的适当方法可能是添加“self.mgw = None&#39;在__init__
中,从而满足pycharm,该属性正确存在,而不会改变它在构建方法中实际正确设置的方式。