Qt打開外部程序
- //1.通過調用系統函數
- system("opt/myApp"); //這是linux下的,windows下可以用WinExec等函數
- //2.通過QProcess,阻塞調用
- QProcess::execute("/opt/myApp"); //絕對路徑和相對路徑都可以,windows下要帶exe后綴,系統應用如記事本notepad可直接輸入打開
- //3.通過QProcess,非阻塞調用
- QProcess *pro = new QProcess;
- pro->start("/opt/myApp");
1. 前兩種方法會阻塞進程,直到myApp程序結束,而第三種方法則不會阻塞進程,可以多任務運行。
2. QT在運行的時候,要啟動qws服務,如果用前面兩種方法,運行的時候,要新開啟一個qws,否則不能運行;而用第三種方法,則不需要再開啟qws,它和主進程共用一個qws。
3. 第三種方法雖然不會阻塞,但是有可能在終端上看不到打印出來的信息。所以要在終端顯示信息時,可以考慮用阻塞模式。
4. 第三種方法可以加入啟動參數,詳見qt文檔。
參考:http://blog.csdn.net/u012234115/article/details/46335219
-----------------------------------------------------------------------------------
還有一篇:
http://blog.csdn.net/seanyxie/article/details/5799714