Pregunta

tengo un QMdiSubWindow y necesito filtrar el evento minimizar para poder simplemente hide() la ventana.

He probado lo siguiente:

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

Esto filtra TODOS los cambios de estado de la ventana, como maximizar.Necesito el evento minimizar exclusivamente.

event->ignore() no ignora nada.yo también lo intenté event->setAccepted(false), que tampoco logró anular eventos.

¿Fue útil?

Solución

void accounts::event(QEvent *e)
{
  if (e->type() == QEvent::WindowStateChange) {
    if (isMinimized()) {
      hide();
      e->ignore();
    } else {
      e->accept();
    }
  }
  QMdiSubWindow::event(e);
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top