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();

 

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