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

