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
相关产品推荐
相关产品推荐

