Kivy - Confirmação de saída
Nessa aula vamos aprender a criar a funcionalidade de confirmação de saída para nossos aplicativos. Ao apertar Esc ou clicar no X da janela, um popup de confirmação será mostrado, antes que o aplicativo feche.
O fechamento do nosso aplicativo pode ocorrer de diversas maneira, como por exemplo, apertando o botão ESC do teclado, clicando em algum botão no aplicativo ou clicando no X da janela do aplicativo. Para evitar criar uma função ou método para cada maneira de fechar o aplicativo, vamos relacionar o evento que certamente irá ocorrer no fechamento do aplicativo ao nosso método de confirmação.
Quando registramos a intenção de fechar o aplicativo, o Kivy passa por diversos processos internos. Um desses processor é a ativação do evento 'on_request_close', que ocorre logo antes do fechamento da janela. Portanto, podemos utilizar esse evento para mostrar um popup de confirmação.
Para relacionar a ativação desse evento à uma função ou método, podemos utilizar o seguinte código:
# lembre-se de importar o módulo window primeiro
from kivy.core.window import Window
# E depois relacionar o evento a um método ou função
# num momento oportuno
Window.bind(on_request_close=funcaoDeConfirmacao)
É necessário, entretanto, que a 'funcaoDeConfirmacao' devolva o valor True, ou seja:
def funcaoDeConfirmacao(*args,**kwargs):
# fazer procedimento de confirmacao
return True
Isso porque é necessário que o envento não se propague. Quando retornamos True, o Kivy entende que esse evento já foi resolvido pela funcão e não precisa ser propagado adiante, o que causaria o fechamento da janela.
No vídeo mostro como implementar isso no nosso aplicativo, dê uma olhada :)
Faça o download dos arquivos desta aula aqui.