2012-07-28 46 views
1

我有一个QMdiSubWindow,我需要过滤最小化事件,以便我可以简单地hide()窗口。过滤器最小化事件

我曾尝试以下:

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

此过滤器所有窗口状态的改变,如最大化。我只需要最小化事件。

event->ignore()不会忽略任何东西。我也试过event->setAccepted(false),这在取消事件方面也不成功。

回答

3
void accounts::event(QEvent *e) 
{ 
    if (e->type() == QEvent::WindowStateChange) { 
    if (isMinimized()) { 
     hide(); 
     e->ignore(); 
    } else { 
     e->accept(); 
    } 
    } 
    QMdiSubWindow::event(e); 
} 
+1

sorta现在就工作,谢谢 – 2012-07-28 07:32:26