Android Kivy应用程序中的按钮未运行事件
我已经为一个简单的Kivy应用程序创建了一个两个按钮的代码,但是单击按钮,它无法运行一个方法 当我单击“签入”按钮时,它会显示AttributeError:“button”对象没有属性“login” 这是我的密码。我想在点击按钮时打印一条消息Android Kivy应用程序中的按钮未运行事件,android,python,kivy,Android,Python,Kivy,我已经为一个简单的Kivy应用程序创建了一个两个按钮的代码,但是单击按钮,它无法运行一个方法 当我单击“签入”按钮时,它会显示AttributeError:“button”对象没有属性“login” 这是我的密码。我想在点击按钮时打印一条消息 from kivy.app import App from kivy.lang import Builder button1 = ''' BoxLayout: Button: text: 'Check In' h
from kivy.app import App
from kivy.lang import Builder
button1 = '''
BoxLayout:
Button:
text: 'Check In'
height: "40dp"
on_press: login()
size_hint: None, None
pos_hint: {'center_x': .1, 'center_y': .1}
canvas.before:
PushMatrix
Rotate:
angle: 0
origin: self.center
canvas.after:
PopMatrix
Button:
text: 'SOS'
size_hint: None, None
pos_hint: {'center_x': .1, 'center_y': .1}
canvas.before:
PushMatrix
Rotate:
angle: 0
origin: self.center
canvas.after:
PopMatrix
'''
class RotationApp(App):
def build(self):
return Builder.load_string(button1)
def login(self):
print("Click the goddamn button")
RotationApp().run()
该按钮没有对登录方法的引用-就它而言,这只是一些可能来自任何地方的随机名称 由于登录是应用程序类的一种方法,因此您需要对正在运行的应用程序的引用,该语言已经提供了
app
关键字。这意味着您应该将login
替换为app.login
您还可以通过
app.get\u running\u app()
在纯python中获得对该应用程序的引用,这实际上是app关键字在幕后的作用。非常好。看起来你是stackoverflow上唯一认识kivy的人。:)这会打印我的消息,但不会作为弹出窗口打印,而是打印在控制台上。如何将消息显示为弹出窗口?Popup().open()
。您还可以查看文档,了解如何设置弹出窗口的标题或向其添加小部件。再次感谢。我可以从同一文件夹中的任何其他文件(.py)调用任何函数吗?是的,这只是普通python,您需要将其他文件作为模块导入。