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