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

Kivy GUI输出窗口异常:仅显示黑屏不渲染指定文本求助

Kivy基础程序黑屏不显示文本问题排查修复思路

运行基础Kivy测试程序时,窗口仅显示空白黑屏,未出现预期的"My first App"文本。

测试代码

from kivy.app import App
from kivy.uix.label import Label

class My_App(App):
    def build(self):
        return Label(text = "My first App")

if __name__ == "__main__":
    My_App().run()

运行日志

[INFO   ] [Logger      ] Record log in C:\Users\Tennistrainer\.kivy\logs\kivy_23-12-20_0.txt
[INFO   ] [deps        ] Successfully imported "kivy_deps.angle" 0.3.3
[INFO   ] [deps        ] Successfully imported "kivy_deps.glew" 0.3.1
[INFO   ] [deps        ] Successfully imported "kivy_deps.sdl2" 0.6.0
[INFO   ] [Kivy        ] v2.2.1
[INFO   ] [Kivy        ] Installed at "C:\Users\Tennistrainer\PycharmProjects\kivy-thelab\pythonProject2\.venv\lib\site-packages\kivy\__init__.py"
[INFO   ] [Python      ] v3.9.13 (tags/v3.9.13:6de2ca5, May 17 2022, 16:36:42) [MSC v.1929 64 bit (AMD64)]
[INFO   ] [Python      ] Interpreter at "C:\Users\Tennistrainer\PycharmProjects\kivy-thelab\pythonProject2\.venv\Scripts\python.exe"
[INFO   ] [Logger      ] Purge log fired. Processing...
[INFO   ] [Logger      ] Purge finished!
[INFO   ] [Factory     ] 190 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2 (img_pil, img_ffpyplayer ignored)
[INFO   ] [Window      ] Provider: sdl2
[INFO   ] [GL          ] Using the "OpenGL" graphics system
[INFO   ] [GL          ] GLEW initialization succeeded
[INFO   ] [GL          ] Backend used <glew>
[INFO   ] [GL          ] OpenGL version <b'4.6.0 - Build 31.0.101.2121'>
[INFO   ] [GL          ] OpenGL vendor <b'Intel'>
[INFO   ] [GL          ] OpenGL renderer <b'Intel(R) HD Graphics Gen11'>
[INFO   ] [GL          ] OpenGL parsed version: 4, 6
[INFO   ] [GL          ] Shading version <b'4.60 - Build 31.0.101.2121'>
[INFO   ] [GL          ] Texture max size <16384>
[INFO   ] [GL          ] Texture max units <32>
[INFO   ] [Window      ] auto add sdl2 input provider
[INFO   ] [Window      ] virtual keyboard not allowed, single mode, not docked
[INFO   ] [Base        ] Start application main loop
[INFO   ] [Base        ] Leaving application in progress...

排查修复思路

  • 解决颜色冲突问题:默认Label文本为白色,若窗口背景异常导致显示冲突,可显式设置文本或窗口背景色:
    # 方法1:设置Label文本为黑色
    return Label(text="My first App", color=(0, 0, 0, 1))
    # 方法2:设置窗口为白色背景
    from kivy.core.window import Window
    Window.clearcolor = (1, 1, 1, 1)
    
  • 强制指定窗口大小:窗口初始化尺寸异常可能导致内容无法显示,在运行前添加窗口大小设置:
    from kivy.core.window import Window
    Window.size = (400, 300)
    
  • 切换渲染后端:Intel核显与默认GLEW后端可能存在兼容问题,切换到Angle后端尝试:
    import os
    os.environ['KIVY_GL_BACKEND'] = 'angle_sdl2'
    
  • 调整类名命名规范:Kivy App子类常规使用大驼峰命名(如MyApp而非My_App),修改后重新运行排除潜在问题。
  • 重装Kivy依赖:虚拟环境中依赖可能安装不完整,执行以下命令重装:
    pip uninstall kivy kivy_deps.angle kivy_deps.glew kivy_deps.sdl2 -y
    pip install kivy[base]
    

内容的提问来源于stack exchange,提问作者Joerg Wuljoe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 17:56:31