Android Kivy应用程序中的按钮未运行事件

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

我已经为一个简单的Kivy应用程序创建了一个两个按钮的代码,但是单击按钮,它无法运行一个方法

当我单击“签入”按钮时,它会显示AttributeError:“button”对象没有属性“login”

这是我的密码。我想在点击按钮时打印一条消息

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,您需要将其他文件作为模块导入。