#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)
и то же самое в двух других местах.