在我的gui项目中,我需要启动另一个应用程序来更新调用初始更新的应用程序..如果这是有道理的。
辅助程序更新主程序的唯一方法是主程序是否关闭。
这就是我所做的:
QDesktopServices::openUrl(QUrl("file:update.exe"));
qApp->quit();
在更新程序中,我还在更新开始之前添加了2秒睡眠定时器以防万一。问题是主程序永远不会关闭。
我已经用qApp->退出,QApplication :: quit(),QCoreApplication :: exit()等替换了qApp-> quit(),并且没有任何内容正在关闭主程序。
有什么建议吗?
答案 0 :(得分:1)
试试这个:
#include <QApplication>
#include <QProcess>
qApp->quit();
QProcess::startDetached("update.exe");
答案 1 :(得分:1)
您可以尝试执行以下操作(希望从源代码中可以清楚地看到):
// Launches another application after 5 seconds.
class Launcher : public QObject
{
Q_OBJECT
public:
Launcher()
{
QTimer::singleShot(5000, this, SLOT(launch()));
}
private slots:
void launch()
{
QProcess::startDetached("notepad");
qApp->quit();
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Launcher launcher;
[..]
return app.exec();
}
#include "main.moc"