我正在使用 Windows 10,Python 3.7.9 我的代码:在 Main.py 中:from kivy.app import Appfrom kivy.uix.widget import Widgetclass MyGrid(Widget): passclass Main(Widget): def build(self): return Main()if __name__ == "__main__": Main().run()在main.kv中:<Main> GridLayout: cols:1 GidLayout: cols:2 Label: text: "Name: " TextInput: multiline:False Label: texxt: "Email: " TextInput: multiline:False Button: text:"Submit"错误(1):在 .py 文件中,“Main().run()”中的“Main”带有下划线:Instance of 'Main' has no 'run' member错误(2):在 .kv 文件中,'' 带有下划线:Kivy files require #:Kivy我不知道如何修复,非常感谢任何帮助
2 回答
LEATH
TA贡献1936条经验 获得超6个赞
我看到两个错误,一个在 kv 代码中,第二个在 python 代码中。
在 kv 代码中将 更改<Main>为<MyGrid>。MyGrid 类是根小部件,而不是 Main 类。Main类只负责构建widget树。
在 python 代码中,更改 Main 类中 build 方法的返回,以便它返回 MyGrid 实例。并且Main应该继承自App类,而不是继承自Widget类。
class Main(App):
def build(self):
return MyGrid()
慕娘9325324
TA贡献1783条经验 获得超4个赞
根据文档,一个kv
文件:
kv 文件的语法 Kivy 语言文件必须以 .kv 作为文件扩展名。
文件的内容应始终以 Kivy 标头开头,其中 version 必须替换为您正在使用的 Kivy 语言版本。现在,使用 1.0:
#:kivy `1.0` # content here
然后,在你的py
文件中。申请必须App
延期Widget
。此外,该build()
方法必须返回 a Widget
,而不是 的实例App
。而且,如果您的App
名称为Main
,那么您应该为App
.
文件中的规则kv
描述了如何构建小部件,并且不能应用于构建App
. 它们可以描述 的根小部件的构建App
,但不能描述其App
本身。
添加回答
举报
0/150
提交
取消