我有一个 QMainWindow 用于浏览和查看图像。这些图像是使用我编写的包装器读取的特殊医学图像。
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 中,程序就会正常终止。但是当我选择一个缩略图,显示它然后选择另一个缩略图时,当我关闭窗口时程序不会终止。
我想知道是否有人可以告诉我我在这里做错了什么。我很乐意复制/粘贴更多代码,但目前我不确定哪些部分是相关的。
我已阅读以下内容希望得到答案,但到目前为止我一直无法解决此问题:
即使在 MainWindow 关闭后,Qt 应用程序仍保留在内存中
谢谢