首页 > 解决方案 > 当我执行简单的 Kivy 代码时出现黑屏

问题描述

我是 kivy 的新手,并且正在使用一些教程,但我只会在视频开发人员在屏幕上获取他们的小部件时出现黑屏。

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 __int__(self, **kwargs):
        super(MyGrid, self).__int__(**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()

标签: pythonkivy

解决方案


您的代码中有一些拼写错误。第一个是关于__init__您拼写的功能__int__ 您还使用不同的变量来分配小部件,并使用类似的变量(但不同)来添加它(例如self.lastName = TextInput(multiline=False)self.add_widget(self.lastname)
此代码应该可以工作:

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()

推荐阅读