Qt调用外部程序

启动外部程序的两种方式:

一体式

void QProcess::start(const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite) 外部程序启动后。将随主程序的退出而退出。

分离式

void QProcess::startDetached(const QString & program, const QStringList & arguments, const QString & workingDirectory = QString(), qint64 * pid = 0) 外部程序启动后,当主程序退出时并不退出。而是继续执行。

1.	    QProcess pLreleaseQM(this);  
2.	    QStringList listArgment;  
3.	  
4.	    listArgment << strFile;  
5.	  
6.	    pLreleaseQM.execute("lrelease.exe", listArgment); 
7.	    //分离式,主程序退出时并不终止,而是继续运行 
8.	    pLreleaseQM.waitForStarted();  
9.	    //阻塞,直到外部程序结束
10.	    pLreleaseQM.waitForFinished();  

当程序路径中含有空格的时候,仅设置程序路径program是无法被识别的。解决方法是再将程序路径传递给arguments。

1.	//1-不带空格。能够启动  
2.	process->start("F:/AppInst/115/115com/115com.exe");  
3.	  
4.	//2-带空格,无法启动  
5.	process->start("C:/Program Files/HaoZip/HaoZip.exe");  
6.	  
7.	//3-带空格,使用带參模式。能够启动  
8.	process->start("C:/Program Files/HaoZip/HaoZip.exe", QStringList("C:/Program Files/HaoZip/HaoZip.exe")); 

详细内容可查看:Qt技巧:QProcess与外部程序的调用
另外可看:QT 随笔 QProcess中waitForFinished的坑

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值