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.

È stato utile?

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
scroll top