我有一個QMainWindow用於瀏覽和查看圖像。這些圖像是使用我寫的包裝紙閱讀的特殊醫學圖像。當主窗口關閉時QApplication不會退出
GUI的左側有一個QListview,它顯示縮略圖列表。當用戶選擇其中的一個時,QVTKWidget在右側顯示相應的圖像。我使用vtkRenderWindowInteractor來操作顯示的圖像。
我主要如下所示:
#include <QApplication>
#include "GUIClassName.h" //inherits from QMainWindow
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
GUIClassName w;
w.show();
return a.exec();
}
我的closeEvent如下所示:
void GUIClassName::closeEvent(QCloseEvent* event)
{
// mainInteractor is a vtkSmartPointer<vtkRenderWindowInteractor>
if (this->_mainInteractor != NULL)
this->_mainInteractor->TerminateApp();
event->accept();
}
的問題是,當我關閉QMainWindow中,應用程序不會終止。即命令提示符保持打開並且按任意鍵繼續不會出現。如果我CTRL + BREAK,然後退出應用程序(明顯),但我得到了以下信息:
的QObject ::〜QObject的:定時器不能從另一個線程停止
我已經注意到,如果我只選擇一個縮略圖並將其顯示在QVTKWidget中,程序結束就好了。但是,當我選擇一個縮略圖時,顯示它並選擇另一個縮略圖,然後當我關閉該窗口時程序不會終止。
我想知道如果有人能告訴我我在這裏做錯了什麼。我很樂意複製/粘貼更多的代碼,但我不確定目前哪些部分是相關的。
我已閱讀在回答希望以下,但到目前爲止,我已經無法來解決這個問題:
Qt app stays in memory even after MainWindow is closed
Qt process stays in memory after application closes
C++ application does not kill all processes on exit
感謝
我不認爲我明確地啓動任何線程,但我可能會隱式創建/啓動一個線程。我將編輯我的問題以提供更多信息。 – siavashk