Qt打開外部程序的三種方法(兩種阻塞,一種不阻塞)


Qt打開外部程序

 

[cpp]  view plain copy 在CODE上查看代碼片 派生到我的代碼片
 
  1. //1.通過調用系統函數  
  2. system("opt/myApp"); //這是linux下的,windows下可以用WinExec等函數  
  3.   
  4. //2.通過QProcess,阻塞調用  
  5. QProcess::execute("/opt/myApp"); //絕對路徑和相對路徑都可以,windows下要帶exe后綴,系統應用如記事本notepad可直接輸入打開  
  6.   
  7. //3.通過QProcess,非阻塞調用  
  8. QProcess *pro = new QProcess;  
  9. 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM