@DoILookLikeASubscriber

Почему не работает приложение на Python Kivy?

Начал делать приложение на Python Kivy. Следую примеру из официальной документации:
Label отображаются нормально и приложение работает.
Когда добавляю TextInput, оно "копирует фон" и не отображает элементы. Я работаю в PyCharm, поэтому фон PyCharm'а.
Вот код:
from kivy.app import App
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput

class PersonalDataWindow(GridLayout):
    def __init__(self, **kwargs):
        super(PersonalDataWindow, self).__init__(**kwargs)
        self.cols = 2
        self.add_widget(Label(text='Ваш рост:'))
        self.height = TextInput(multiline=False)
        self.add_widget(Label(text='Ваш вес:'))
        self.weight = TextInput(multiline=False)
        self.add_widget(self.height)

class MyApp(App):
    def build(self):
        return PersonalDataWindow()

if __name__ == '__main__':
    MyApp().run()

Вот скриншот ошибки:
65c52421e2794392574414.png
Ну вот и пример: окно снимка экрана "скопировалось" на мое приложение
  • Вопрос задан
  • 103 просмотра
Пригласить эксперта
Ответы на вопрос 1
@PerchikII
У вас самая большая ошибка. Называть переменные в коде именами из зарегистрированных имён.
Типа weigh или height. Виджет видит такое имя и его класс выполняет его как внутреннюю команду.
А там ......ж...а.

def __init__(self, **kwargs):
super(PersonalDataWindow, self).__init__(**kwargs)
self.cols = 2

self.add_widget(Label(text='Ваш рост:'))
self.heigh = TextInput(multiline=False)

self.add_widget(Label(text='Ваш вес:'))
self.weigh = TextInput(multiline=False)

self.add_widget(self.heigh)
self.add_widget(self.weigh)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы