Привет: Я запускаю часы в фоновом режиме, и я хотел бы отключить событие закрытия и сообщить пользователю, что сначала останавливают часы. Я уже знаю о повторной реализации closeEvent, , но Я бы хотел попробовать в changeEvent reimplementation. Это код:QEvent :: Close not triggered from 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;
}
}
}
Вышеупомянутое не останавливает событие закрытия, пока часы активны ... любые идеи?
Но это в [QEvent] (http://doc.qt.io/qt-4.8/qevent.html) param – Joel
@Joel 'QEvent :: type()' описывает все доступные события, включая 'QEvent: : Close'. 'QWidget :: changeEvent' обрабатывает события определенных типов, которые не включают' QEvent :: Close'. – hank
Ах, я понимаю, спасибо. – Joel