Qt QProcess啓動外部程序 空格 system

轉載地址:

https://www.cnblogs.com/mathyk/p/10141572.html

一、啓動外部程序的兩種方式:
(1)一體式:

      void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite)
      外部程序啓動後。將隨主程序的退出而退出。

      QProcess::execute("mkdir /userdata");

      區別在於start()是非阻塞的,而execute()是阻塞的。專業點講,execute()=start()+waitforFinished()。


(2)分離式:void QProcess::startDetached(const QString & program, const QStringList & arguments, const QString & workingDirectory = QString(), qint64 * pid = 0)
        外部程序啓動後,當主程序退出時並不退出。而是繼續執行。

startDetached 可用來更新應用程序

APP結束前startDetached啓動引導程序更新可執行文件並執行

以上命令正常用法不支持帶空格

解決方法:http://qiusuoge.com/12038.html

一種方式是使用system()函數,但是此函數沒有返回值,有時不太方便,

system("ifconfig eth0 2.0.0.23");

另一種方式是使用上面接口第二個參數 QStringlist

QProcess p(0);
p.start("cmd", QStringList()<<"/c"<<"ping www.baidu.com");
p.waitForStarted();
p.waitForFinished();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章