c++ - Qt进程在应用程序关闭后留在内存中

标签 c++ qt process

我有一个简单的应用程序,它像这样从它的 main 启动 QDialog :

int main(int argc, char *argv[])
 {
     Q_INIT_RESOURCE(resources); 
     QApplication app(argc, argv);
     QCoreApplication::setApplicationName(APP_NAME);
     QCoreApplication::setApplicationVersion(APP_VERISON);
     QCoreApplication::setOrganizationDomain(APP_DOMAIN);
     app.setStyle("WindowsXP");    
     QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));
     QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

         AuthenticationDialogContainer *pAuthenticationDialogContainer = new AuthenticationDialogContainer();
     if(pAuthenticationDialogContainer->exec() != QDialog::Accepted ) {
         return 0;
     }



     return app.exec();
}

当它通过 app.exec() 之后的应用程序末尾并且应用程序正在执行预期的操作时。当我打开 windows xp 任务管理器时,我看到该进程仍在内存中,我需要手动终止它。我怎样才能防止它发生?

最佳答案

QDialog::exec 是一个阻塞调用:此代码在 QApplication 启动之前显示并关闭对话框。
您可以使用 QDialog::show 并在 QDialog::accept 方法中处理返回代码。

关于c++ - Qt进程在应用程序关闭后留在内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6303335/

相关文章:

c++ - 错误 C1083 : Cannot open include file: 'stdafx.h'

c - 如何更改流程创建的顺序?

c++ - QGraphicsScene::clear 不会改变 sceneRect

c++ - Qt GUI 应用程序:如果 QObject::connect() 失败会发出警告?

c++ - 即使还有足够的内存,内存分配也失败

c++ - Linux API 列出正在运行的进程?

c++ - 在 C++ 中为 shell 实现 bash 运算符

c++ - std::vector 删除重复项,然后删除另一个 vector 中的相同索引

c++ - 通过具有重载运算符函数的构造函数进行自动类型转换

c++ - 在 Qt Creator 中调试断言