Você está aqui: Qt ::: Classes, Controles e Componentes ::: QMainWindow

Aprenda a detectar o tratador de evento closeEvent() em uma janela QMainWindow

Quantidade de visualizações: 6617 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.

Link para compartilhar na Internet ou com seus amigos:

Vamos testar seus conhecimentos em Hidrologia

(IDECAN - 2021 - Perito Criminal de 1ª Classe (PEFOCE)/Engenharia Civil) O aparelho utilizado para medição e registro de precipitações é o

A) pluviômetro.

B) fluviógrafo.

C) pluviógrafo.

D) limnímetro.

E) limnígrafo.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

Perda de Carga Localizada, Acessórios de Tubulação

Considerando a questão: "Qual a perda de carga singular em um conduto de 100 m, diâmetro de 100 mm, com um fluido escoando a 2 m/s, apresentando as seguintes singularidades rosqueadas na tubulação: válvula globo totalmente aberta e cotovelo de 45º com raio normal?".

Qual o erro relativo da perda de carga linear em comparação com a perda de carga total?

A) 0,08%.

B) 4,30%.

C) 8,28%.

D) 9,00%.

E) 0,09%.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em AutoCAD Civil 3D

Sistema de Coordenadas no Civil 3D

Na janela Drawing Settings do AutoCAD Civil 3D, qual aba usamos para definir ou alterar o sistema de coordenadas do desenho?

A) Units and Zone

B) Transformation

C) Ambient Settings

D) Object Layers
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Instalações Hidráulicas Prediais

O projeto de instalação hidrossanitária

Um projeto de instalações hidrossanitárias é composto por redes hidráulicas (constituído de água fria e água quente), bem como redes sanitárias (esgoto), ventilação e rede pluvial. Para obras de grande porte, o projeto de proteção contra incêndio também está englobado no projeto de instalação hidrossanitária.

Sobre as instalações hidrossanitárias em uma obra de pequeno porte, assinale a afirmativa correta:

A) No projeto de esgotamento, a fossa séptica é aplicada para que as águas servidas convertam totalmente a matéria orgânica em gases.

B) Alterações de percurso e de extensão não afetam o dimensionamento dos tubos de abastecimento de água, desde que não exista alteração de diâmetro.

C) O shaft normalmente é acessível por painéis removíveis ou aberturas que permitem a verificação horizontal do abastecimento de todos os pavimentos do edifício em um só local.

D) Um dos papéis do fecho hídrico do sifão sanitário é barrar a passagem de gases (odores) para o ambiente.

E) É recomendável que se utilize o diâmetro mínimo de 100mm em toda a tubulação para evitar entupimentos.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em JavaScript

Analise o seguinte código JavaScript

var palavra = 'b' + 'a' + + 'a' + 'a';
palavra = palavra.toLowerCase();
document.write(palavra);

Qual é o resultado de sua execução?

A) baaa.

B) banana.

C) anana.

D) bananas.

E) Um erro de execução.
Verificar Resposta Estudar Cards Todas as Questões

Veja mais Dicas e truques de Qt

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: Delphi
6º lugar: C
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2024 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 43 usuários muito felizes estudando em nosso site.