Você está aqui: Qt ::: Classes, Controles e Componentes ::: QMainWindow |
Aprenda a detectar o tratador de evento closeEvent() em uma janela QMainWindowQuantidade de visualizações: 6798 vezes |
|
O tratador de evento closeEvent() de uma janela QMainWindow é chamado quando a janela recebe uma requisição para ser fechada. Isso é geralmente feito por uma janela de nível mais alto. Veja a assinatura deste tratador de evento: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- void QWidget::closeEvent(QCloseEvent* event) [virtual protected] Note que o tratador de evento closeEvent() recebe como argumento um objeto da classe QCloseEvent. Note também que o tratador é virtual e protected, o que significa que devemos reimplementá-lo nas classes nas quais desejamos tirar proveito do mesmo. Por padrão, este evento é aceito e a janela é fechada. Podemos reimplementar esta função se desejarmos que a janela responda de forma diferente à solicitação de fechamento. Veja um trecho de código no qual apenas avisamos o usuário de que a janela vai ser fechada: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
void JanelaPrincipal::on_pushButton_clicked()
{
// vamos fechar a janela atual
this->close();
}
void JanelaPrincipal::closeEvent(QCloseEvent* ce)
{
// vamos avisar do fechamento da janela
QMessageBox::information(this, "Aviso",
"A janela vai ser fechada agora.");
}
Se quisermos evitar o fechamento da janela só precisamos efetuar uma chamada ao método ignore() da classe QCloseEvent, herdado por esta da classe QEvent. Veja: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
void JanelaPrincipal::on_pushButton_clicked()
{
// vamos fechar a janela atual
this->close();
}
void JanelaPrincipal::closeEvent(QCloseEvent* ce)
{
// #include <QtGui/QCloseEvent>
// vamos evitar o fechamento da janela
QMessageBox::information(this, "Aviso",
"Esta janela não pode ser fechada.");
// vamos ignorar o evento
ce->ignore();
}
Um bom uso do tratador de evento closeEvent() é quando queremos perguntar ao usuário se ele deseja salver seu trabalho antes que a janela seja fechada. |
|
|
Veja mais Dicas e truques de Qt |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






