Filtra minimizza l'evento
Domanda
Ho un QMdiSubWindow
e devo filtrare l'evento minimizza in modo da poterlo semplicemente hide()
la finestra.
Ho provato quanto segue:
void accounts::changeEvent ( QEvent *event )
{
if(event->QEvent::WindowStateChange) {
event->ignore();
}
}
Questo filtra TUTTE le modifiche allo stato della finestra, come l'ingrandimento.Ho bisogno esclusivamente dell'evento minimizzato.
event->ignore()
non ignora nulla.Ci ho anche provato event->setAccepted(false)
, anch'esso incapace di cancellare gli eventi.
Soluzione
void accounts::event(QEvent *e)
{
if (e->type() == QEvent::WindowStateChange) {
if (isMinimized()) {
hide();
e->ignore();
} else {
e->accept();
}
}
QMdiSubWindow::event(e);
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow