我有一个简单的应用程序,它像这样从它的 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/