2014-11-14 78 views
1

我写了一个简单的游戏,我想在按下某个按钮后重新启动(以便所有内容都可以返回到应用程序运行时的位置)。 所以问题是:我需要键入on_press再次启动Game()?在kivy中重新启动一个应用程序

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() 

回答

1

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

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

+0

我该如何“删除小部件并添加一个新的实例,它将具有默认属性”? – Mariusz 2014-11-14 21:31:57

+0

窗口小部件的方法是.clear_widgets()和.canvas.clear()。查看文档以了解可能的参数和其他有用的方法。就我所知,没有办法做到这一点,所以您可能需要为每个应用程序定制自己的过程。 – Totem 2014-11-15 00:37:16