You need to enable JavaScript to run this app. Python+Kivy开发应用代码无报错但运行显示黑屏该如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Python+Kivy开发应用代码无报错但运行显示黑屏该如何解决

问题排查与修复方案

问题根因

  • KV文件未指定根组件对应自定义的MyLayout类,导致build()返回的MyLayout实例是没有任何子控件的空Widget,因此显示黑屏
  • KV文件内组件缩进错误,TextInput、GridLayout、Button本应为BoxLayout的子组件,当前写法和BoxLayout平级,无法被正确挂载到布局下
  • 自定义App类命名与Kivy自带的App基类重名,存在命名冲突风险

修复后的代码

calc.py

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.button import Button
Window.size = (500,700)
Builder.load_file('calc.kv')
class MyLayout(Widget):
    pass
# 修改App类名避免命名冲突
class CalculatorApp(App):
    def build(self):
        return MyLayout()
if __name__ == "__main__":
    CalculatorApp().run()

calc.kv

#:kivy 2.0.0
<MyLayout>:
    BoxLayout:
        orientation:"vertical"
        size: root.width, root.height

        TextInput:
            id: calc_input
            text: "0"
            halign: "right"
            font_size : 65
            size_hint: (1, .15)

        GridLayout:
            cols:4
            rows:5
            # 计算器按钮统一放到GridLayout下
            Button:
                size_hint: (.2, .2)
                font_size: 32
                text: "%"

验证说明

修改后重新运行代码即可正常显示输入框和按钮,不会再出现黑屏问题,后续可以继续在GridLayout节点下补全剩余的计算器功能按钮即可。

内容的提问来源于stack exchange,提问作者Akshit Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 01:36:01