How to Restart Qt Application

來源:互聯網
上載者:User

標籤: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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.