пустой экран при выполнении простого кода Kivy

#python #kivy

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

Ответ №1:

У вас есть некоторые орфографические ошибки в коде. Первый касается __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()
  

Комментарии:

1. Большое спасибо. спасибо за ваше время … я так смеялся над своей ошибкой сейчас. я многое проверяю перед публикацией здесь. черт возьми, я пропустил это ..>

2. Вот тут-то и пригодится IDE ; o) Я постоянно допускаю подобные ошибки, но IDEA или PyCharm продолжают донимать меня, пока я их не исправлю..