在kivy中重新启动应用程序

时间:2014-11-14 19:20:11

标签: android python button kivy restart

我已经编写了一个简单的游戏,我想在按下某个按钮后重新启动(这样一切都会回到应用程序运行时的状态)。 所以问题是:我需要输入on_press来再次启动Game()?

class Game(Widget):
    (...)
    def but_add(self, player):
        self.add_widget(Button(text=player,
                               font_size=30,
                               center_x=self.width/2,
                               center_y=self.height/2,
                               size=(self.height, self.height*7/20),
                               background_normal='katana.jpg',
                               background_down='katana.jpg',
                               markup=True,
                               on_press= ???????? ))
    (...)

class Okiya(App):
    def build(self):    
        return Game()

if __name__ == "__main__":
    Okiya().run()

2 个答案:

答案 0 :(得分:2)

您可能不想重新启动整个应用,但只是为了重置其状态。这样做的机制取决于你,你是知道初始状态应该是什么样的人;例如,您可以执行on_press=self.reset_func并定义reset_func方法来执行所有这些任务。

您还可以删除窗口小部件并添加一个新实例,该实例将具有默认属性。

答案 1 :(得分:0)

我不知道它到底值多少钱,但以下内容适用于我正在做的应用:

将以下方法添加到您的应用程序类:

class Okiya(App):
    def restart(self):
        self.root.clear_widgets()
        self.stop()
        return Okiya().run()

然后从要重新启动应用程序的 python 文件中调用该方法:

App.get_running_app().restart()