QEvent::Close 未从 changeEvent 触发
QEvent::Close not triggered from changeEvent
您好:我是运行后台时钟,我想禁用关闭事件并通知用户先停止时钟。我已经知道 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;
}
}
}
当时钟处于活动状态时,以上不会停止关闭事件...有什么想法吗?
如the doc所说,更改事件不包括QEvent::Close
。
无论如何你都应该重新实现 QWidget::closeEvent
。
您好:我是运行后台时钟,我想禁用关闭事件并通知用户先停止时钟。我已经知道 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;
}
}
}
当时钟处于活动状态时,以上不会停止关闭事件...有什么想法吗?
如the doc所说,更改事件不包括QEvent::Close
。
无论如何你都应该重新实现 QWidget::closeEvent
。