qt 如何调用外部程序

 我来答
cobra801sohu
高粉答主

2014-02-23 · 醉心答题,欢迎关注
知道顶级答主
回答量:10.4万
采纳率:88%
帮助的人:2.6亿
展开全部
调用外部应用程序时分为阻塞和非阻塞,这里采用非阻塞,因为想调用哪个程序就调用哪个程序嘛。

方法如下:

使用Qprocess的startDetached()方法,当前程序关闭时,调用的外部程序能够照常运行。

#include <QProcess>

QProcess::startDetached("E:\\Qt\\qtcreator-2.4.1\\bin\\qtcreator.exe",QStringList());
这时在Windows系统下,所以路径采用的是\\。

需要注意的是startDetached()函数的参数(参见http://qt-project.org/doc/qt-4.8/qprocess.html#startDetached-2),第一个参数是外部exe路径,当exe路径中含有空格时,就需要用到第二个参数,如果外部应用程序只需要exe这一个就可以打开时,第二个参数写成QStringList()就可以了。

当外部应用程序出了exe还需要其他的文件才能打开时那么将其他文件路径写进QStringList()中。例如ENVI软件:

QProcess::startDetached(tr("E:\\Study Program\\ITT\\IDL71\\bin\\bin.x86\\idlrt.exe"),QStringList("E:\\Study Program\\ITT\\IDL71\\lib\\hook\\envi.sav"));
如果只要前面的exe那是打不开的,还需要加上第二个参数。看看envi快捷方式的属性吧,目标文件里就有两个文件。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式