码迷,mamicode.com
首页 > 移动开发 > 详细

How to Restart Qt Application

时间:2018-04-04 20:43:35      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:exec   line   app   led   har   core   AC   str   pos   

How to restart QtApplication

As we know, Restarting Application means to exit current application, then to call another application. So, let‘s see how exit of one application.

Qt Application

int main(int argc, char** argv)
{
    QApplication app(argc, argv);
    Widget w;
    w.show()
    return app.exec();
}

The code snippet,last line return app.exec() let Qt application in main event loop. if you want to exit main event loop, Just callQCoreApplication::exit(int); or QCoreApplication::quit();

QApplication has one property called quitOnLastWindowClosed, it means the application will exit after last window closed.

About how to close all windows, we can use QApplication::closeAllWindows(), It is better way for using quit to exit application. That way, We can let all windows object revice close event, and do some thing before destroy.

Call another Application

In Qt, It is better let QProcess to do this. It let another application to run and not has father-son relationship.

QProcess::startDetached(qApp->applicationFilePath(), QStringList());

if applicationFilePath not continues space char, we can use

QProcess::startDetached(qApp->applicationFilePath());

Example one

qApp->quit();
QProcess::startDetached(qApp->applicationFilePath(), QStringList());

or

qApp->closeAllWindow();
QProcess::startDetached(qApp->applicationFilePath(), QStringList());

Example two

/**773 = 'r'+'e'+'s'+'t'+'a'+'r'+'t' */
qApp->exit(773);
int main(int argc, char** argv)
{
    int ret = app.exec();
    if (ret == 773) {
        QProcess::startDetached(qApp->applicationFilePath(), QStringList());
        return 0;
    }
    return ret;
}

How to Restart Qt Application

标签:exec   line   app   led   har   core   AC   str   pos   

原文地址:https://www.cnblogs.com/zi-xing/p/8639580.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!