Я получаю эту ошибку при запуске кода, упомянутого ниже

#python #android #python-3.x #visual-studio #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
from kivy.uix.button import Button

class MyGridLayout(GridLayout):
    # Initialize infinite keywords
    def __init__(self, **kwargs):
        # call grid layout customer
        super(MyGridLayout, self).__init__(**kwargs)
        # Set columns
        self.cols = 2
        # Add widgets
        self.add_widget(Label(text="Name: "))
        # add input box
        self.name = TextInput(multiline=False)
        self.add_widget = self.name
        # Add widget
        self.add_widget(Label(text = "Last Name"))
        #add input box
        self.lname = TextInput(multiline=False)
        self.add_widget = self.lname
        # Add widget
        self.add_widget(Label(text = "Contact"))
        #add input box
        self.contact = TextInput(multiline=False)
        self.add_widget = self.contact

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

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

Я получаю эту ошибку при запуске кода, упомянутого ниже.

 >           *MyApp().run()
>            File "C:Kivyvirtlibsite-packageskivyapp.py", line 949, in run
>              self._run_prepare()
>            File "C:Kivyvirtlibsite-packageskivyapp.py", line 919, in _run_prepare
>              root = self.build()
>            File "C:Kivysecond.py", line 33, in build
>              return MyGridLayout()
>            File "C:Kivysecond.py", line 21, in __init__
>              self.add_widget(Label(text = "Last Name"))
>          TypeError: 'TextInput' object is not callable
 

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

1. импорт киви из kivy.app импорт приложения из kivy.uix.label импорт метки из kivy.uix.gridlayout импорт сетки из kivy.uix.textinput импорт текстового ввода из kivy.uix.кнопка импорт Кнопка Это упоминается в коде в качестве заголовков

2. Брось self.add_widget = self.name трубку.

Ответ №1:

В каждом случае, когда у вас есть:

 self.add_widget = 
 

это ошибка. Замените каждый из них правильным вызовом self.add_widget() . Например, заменить:

 self.add_widget = self.contact
 

с:

 self.add_widget(self.contact)
 

и то же самое в двух других местах.