当前位置: 代码迷 >> python >> 新手。 在kivy中呼唤一些东西
  详细解决方案

新手。 在kivy中呼唤一些东西

热度:57   发布时间:2023-06-16 10:14:51.0

我试图从AUDIO屏幕调用“start”

class Audio(Screen):

    def start(self):

class MainPage(Screen):

    def open1(self, *args):
         self.play = ImageButton(source= 'play.png',allow_stretch= True, pos= (600, 850), size_hint= (.2,.1))
         self.play.bind(on_press=audio.start()) #How do I call start?

编辑:这只是一个示例代码

您需要先创建一个类的实例,然后才能调用其方法。

在Python中,它通过使用尾部括号调用类来完成,基本上就像方法调用一样。 话虽如此,改变你的最后一行:

self.play.bind(on_press=audio.start())

对此:

self.play.bind(on_press=Audio().start())

我认为您应该在屏幕管理器根目录中定义此方法。 例如:

class RootScreenManager(ScreenManager):
    # your class implementation
    def start(self):
       # your method implementation

class Audio(Screen):
    def start(self):
        # your code

class MainPage(Screen):
    # your code

如果在按下按钮时调用此方法,我强烈建议使用Kivy文件来定义视图,并且可以使用on_press属性调用start

Button:
    Image:
        source: 'play.png'
    size_hint: .2, .1
    on_press: app.root.start()
    pos: 600, 850

另一方面,如果您不想使用以前的方法,则可以在要调用的方法中创建类的实例,然后通过以下方法将该方法与按钮绑定:

instance = Audio()
self.play.bind(on_press=instance.start)