所以我最近开始使用python,想用kivy做一些应用程序,我正在学习一个教程,这是我试着再看一遍教程的代码,但是我找不到任何东西,所以我需要一些帮助。我还尝试了复制和粘贴,这样我就不会遗漏任何输入内容。
import kivy
kivy.require('1.11.1') # replace with your current kivy version !
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 MyGrid(GridLayout):
def __init__(self, **kwargs):
super(MyGrid, self).__init__(**kwargs)
self.cols = 1
self.inside = GridLayout()
self.inside.cols = 2
self.inside.add_widget(Label(text="First Name: "))
self.name = TextInput(multiline=False)
self.inside.add_widget(self.name)
self.inside.add_widget(Label(text="Last Name: "))
self.lastName = TextInput(multiline=False)
self.inside.add_widget(self.lastName)
self.inside.add_widget(Label(text="Email: "))
self.email = TextInput(multiline=False)
self.inside.add_widget(self.email)
self.add_widget(self.inside)
self.submit = Button(text="Submit", font_size=40)
self.submit.bind(on_press= self.pressed)
self.add_widget(self.submit)
def pressed(self, instance):
print("Pressed")
class MyApp(App):
def build(self):
return MyGrid()
if __name__ == '__main__':
MyApp().run()发布于 2020-05-12 22:28:20
缩进有问题。您的pressed现在不在MyGrid类中。您可能希望它是该类中的方法。如下所示:
class MyGrid(GridLayout):
def __init__(self, **kwargs):
super(MyGrid, self).__init__(**kwargs)
self.cols = 1
self.inside = GridLayout()
self.inside.cols = 2
self.inside.add_widget(Label(text="First Name: "))
self.name = TextInput(multiline=False)
self.inside.add_widget(self.name)
self.inside.add_widget(Label(text="Last Name: "))
self.lastName = TextInput(multiline=False)
self.inside.add_widget(self.lastName)
self.inside.add_widget(Label(text="Email: "))
self.email = TextInput(multiline=False)
self.inside.add_widget(self.email)
self.add_widget(self.inside)
self.submit = Button(text="Submit", font_size=40)
self.submit.bind(on_press= self.pressed)
self.add_widget(self.submit)
#This is now indented under MyGrid class
def pressed(self, instance):
print("Pressed")
class MyApp(App):
def build(self):
return MyGrid()https://stackoverflow.com/questions/61753033
复制相似问题