app.stop()
function is actually called when exiting Kivy app.
Customized this function as much as you like:
class MyApp(App):
def stop(self, *largs):
# Open the popup you want to open and declare callback if user pressed `Yes`
popup = ExitPopup(title="Are you sure?")
popup.bind(on_confirm=partial(self.close_app, *largs))
popup.open()
def close_app(self, *largs):
super(MyApp, self).stop(*largs)
class ExitPopup(Popup):
def __init__(self, **kwargs):
super(ExitPopup, self).__init__(**kwargs)
self.register_event_type('on_confirm')
def on_confirm(self)
pass
def on_button_yes(self)
self.dispatch('on_confirm')
In the kv file, bind on_release
method of Yes
button to the on_button_yes
function.
If that button is presses, on_button_yes()
would be called, hence on_confirm
event would be dispatched, and the app will be closed.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…