在我的應用程序中,我有一個托盤圖標,因此我忽略了closeEvent,以便應用程序在發生某些情況時「最小化」。但是,我確實希望在按退出時,應用程序將完全退出。但是,在重寫closeEvent並調用函數quit()之後,它似乎繞過了MainWindow析構函數,在那裏我有一些代碼。 我在closeEvent中錯過了什麼來正確關閉應用程序,以便調用MainWindow的析構函數,就像closeEvent未被覆蓋時一樣?QT退出不調用MainWindow析構函數
我使用
QMainWindow::closeEvent(event);
和其他一些東西試過,但析構函數永遠不會被調用。
我接近事件的實現是:
void MainWindow::closeEvent(QCloseEvent * event)
{
if(m_closeCompletely == false)
{
if (trayIcon->isVisible())
{
QMessageBox::information(this, tr("Hello"),
tr("The program will keep running in the "
"system tray. To terminate the program, "
"choose <b>Quit</b> in the context menu "
"of the system tray entry."));
}
}
else
{
event->accept();
}
}
你能展示一些更多的上下文嗎?你是如何實現'closeEvent()'的?你是否從文檔中嘗試了樣本? http://doc-snapshot.qt-project.org/4.8/qwidget.html#closeEvent –