我已经编写了一个简单的游戏,我想在按下某个按钮后重新启动(这样一切都会回到应用程序运行时的状态)。 所以问题是:我需要输入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()
答案 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()