Question

j'ai un QMdiSubWindow et je dois filtrer l'événement minimiser pour pouvoir simplement hide() la fenêtre.

J'ai essayé ce qui suit:

void accounts::changeEvent ( QEvent *event )
{
     if(event->QEvent::WindowStateChange) {
          event->ignore(); 
     }
}

Cela filtre TOUS les changements d'état de la fenêtre, tels que l'agrandissement.J'ai besoin exclusivement de l'événement minimiser.

event->ignore() n'ignore rien.j'ai aussi essayé event->setAccepted(false), qui n’a pas non plus réussi à annuler les événements.

Était-ce utile?

La solution

void accounts::event(QEvent *e)
{
  if (e->type() == QEvent::WindowStateChange) {
    if (isMinimized()) {
      hide();
      e->ignore();
    } else {
      e->accept();
    }
  }
  QMdiSubWindow::event(e);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top