Filtrar evento de minimização
Pergunta
eu tenho um QMdiSubWindow
e preciso filtrar o evento de minimização para poder simplesmente hide()
a janela.
Eu tentei o seguinte:
void accounts::changeEvent ( QEvent *event )
{
if(event->QEvent::WindowStateChange) {
event->ignore();
}
}
Isso filtra TODAS as alterações de estado da janela, como maximizar.Eu preciso exclusivamente do evento minimize.
event->ignore()
não ignora nada.Eu também tentei event->setAccepted(false)
, que também não teve sucesso no cancelamento de eventos.
Solução
void accounts::event(QEvent *e)
{
if (e->type() == QEvent::WindowStateChange) {
if (isMinimized()) {
hide();
e->ignore();
} else {
e->accept();
}
}
QMdiSubWindow::event(e);
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow