Python Kivy模块运行仅显示空白窗口 自定义控件无法加载问题求助
问题原因
Kivy的App子类必须明确指定窗口的根控件,你当前的代码核心问题在于:GameApp类没有实现build()方法返回根控件实例,Kivy不知道要把你定义的MainWidget加载到窗口中。即使kv文件里写好了MainWidget的样式规则,也无法应用到窗口中。
解决方案
提供两种可任选的修改方式:
方案1:修改main.py,添加build方法
修改后的main.py代码如下:
from kivy.app import App from kivy.uix.widget import Widget class MainWidget(Widget): pass class GameApp(App): # 新增build方法,返回MainWidget的实例作为根控件 def build(self): return MainWidget() GameApp().run()
game.kv不需要修改,运行后即可正常渲染控件。
方案2:修改game.kv,直接声明根控件
不需要修改main.py,直接调整game.kv代码,去掉MainWidget外面的尖括号,直接实例化作为根控件:
#:kivy 2.0.0 MainWidget: Button: text: "Hello" size: "100dp", "80dp" pos: "100dp", "200dp" color: 0, 0, 1, 1 Label: text: "Hello2" size: "100dp", "80dp" pos: "200dp", "300dp" color: 1, 0, 0, 1
修改后运行即可正常显示控件。
内容的提问来源于stack exchange,提问作者Mesko
相关产品推荐
相关产品推荐

