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的坑

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Qt是一个开发框架,它提供了丰富的功能和工具来开发各种类型的应用程序。其中,调用外部exe方法也是Qt中的一个常见需求。 要在Qt调用外部exe方法,可以使用QProcess类。QProcess类提供了一种在新进程中执行外部程序的能力。以下是一个示例代码: ``` #include <QCoreApplication> #include <QProcess> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QProcess process; QString program = "外部exe的路径"; // 外部exe的路径 QStringList arguments; // 传递给外部exe的参数 arguments << "参数1" << "参数2"; process.start(program, arguments); // 启动外部exe process.waitForFinished(); // 等待外部exe完成 QString output = process.readAllStandardOutput(); // 读取外部exe的输出 QString error = process.readAllStandardError(); // 读取外部exe的错误信息 return a.exec(); } ``` 在这个示例中,首先创建了一个QProcess对象,然后设置了外部exe的路径和参数。接着使用start方法来启动外部exe,并使用waitForFinished方法等待外部exe完成执行。最后,通过readAllStandardOutput和readAllStandardError方法读取外部exe的输出和错误信息。 需要注意的是,如果外部exe需要用户输入,可以使用write方法来向外部exe发送输入。另外,QProcess还提供了其他一些方法和信号,用于处理和监控外部exe的执行过程。 总结起来,在Qt调用外部exe方法可以使用QProcess类,通过设置外部exe的路径和参数,启动外部exe,等待其完成执行,并读取输出和错误信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值