You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:30:02