执行简单Kivy代码时出现黑屏问题求助
解决Kivy运行黑屏的问题
嘿,我帮你揪出了代码里几个导致黑屏的关键问题,咱们一步步来修正:
构造函数名称拼写错误:你把Python类的构造函数
__init__写成了__int__(两处都是!),这直接导致MyGrid的初始化逻辑完全没被执行——Kivy根本没收到要创建那些输入框和标签的指令,自然就只显示黑屏了。必须把两处的__int__都改成__init__。变量名大小写不匹配:代码里存在几处变量名大小写不一致的问题,比如你定义的是
self.lastName,但添加控件时写成了self.lastname;定义的self.emailName,添加时写成了self.emailname。这会触发AttributeError,即使构造函数正常执行,程序也会报错。
下面是修正后的完整代码:
import kivy from kivy.app import App from kivy.uix.label import Label from kivy.uix.gridlayout import GridLayout from kivy.uix.textinput import TextInput class MyGrid(GridLayout): def __init__(self, **kwargs): super(MyGrid, self).__init__(**kwargs) self.cols = 2 self.add_widget(Label(text="Name: ")) self.name = TextInput(multiline=False) self.add_widget(self.name) self.add_widget(Label(text="last name : ")) self.lastName = TextInput(multiline=False) self.add_widget(self.lastName) # 修正变量名大小写 self.add_widget(Label(text="email: ")) self.emailName = TextInput(multiline=False) self.add_widget(self.emailName) # 修正变量名大小写 class MyApp(App): def build(self): return MyGrid() if __name__ == "__main__": MyApp().run()
现在运行这段代码,应该就能看到和教程里一样的Grid布局了——包含姓名、姓氏、邮箱的输入框和对应的标签。
内容的提问来源于stack exchange,提问作者Arun Sai Vemana
相关产品推荐
相关产品推荐

