QEvent :: Close不是从changeEvent触发的

时间:2015-05-30 14:54:57

标签: c++ qt4

您好:我正在后台运行一个时钟,我想禁用关闭事件并告知用户首先停止时钟。我已经知道了closeEvent的重新实现,但是我想在changeEvent重新实现中尝试它。这是关于它的代码:

void AlarmUI::changeEvent (QEvent *event) {
    switch (event->type()) {
        case QEvent::WindowStateChange: {
            if (isMinimized()) hide();
            break;
        }
        case QEvent::Close: {
            if (m_timer->isActive()) event->ignore ();
                event->accept();
            break;
        }
        default: {
            QMainWindow::changeEvent (event);
            break;
        }
    }
}

以上并不会在时钟激活时停止关闭事件......任何想法?

1 个答案:

答案 0 :(得分:1)

正如the doc所述,更改事件不包括QEvent::Close

无论如何,你应该重新实现QWidget::closeEvent