Qt QProcess
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt QProcess相关的知识,希望对你有一定的参考价值。
参考技术A 本文介绍,在Linux环境下,使用Qt中的 QProcess 类执行shell命令并获取输出。
头文件: #include <QProcess>
一、函数接口
QProcess 类提供了三个函数
二、执行命令
这里主要介绍 execute() 和 start() :
execute() 会将命令输出直接打印到控制台,调用程序无法捕获。
调用程序可通过 readAllStandardOutput() 捕获shell命令的输出
三、管 道
对于shell命令中的 | ,直接传入参数是不行的。
以上的方式是无法执行的。
可以将整个命令作为 sh 的参数传入 或 使用 QProcess::setStandardOutputProcess(QProcess *destination) 即将一个进程的标准输出流传入目标进程的标准输入流
对于需要sudo权限的命令,需要使用sudo权限打开qtcreator,或者直接在命令前加上sudo(不建议)。
当然, QProcess 不仅仅可以执行shell命令,也可以用于执行调用外部程序。
Qt:无法使用 QProcess 启动 Windows 控制台
【中文标题】Qt:无法使用 QProcess 启动 Windows 控制台【英文标题】:Qt: can't launch Windows console with QProcess 【发布时间】:2012-04-28 13:25:59 【问题描述】:QProcess 根本不显示黑色控制台窗口。
这是我使用的代码:
QProcess*p=new QProcess(this);
p->start("cmd.exe");
将 cmd.exe 替换为 calc.exe 成功启动计算器。
【问题讨论】:
【参考方案1】:试试这个:
QProcess::startDetached("cmd.exe");
【讨论】:
以下对于测试命令很有用,因为它使控制台保持打开状态:QProcess::startDetached("cmd.exe /K" + otherCommand);
以上是关于Qt QProcess的主要内容,如果未能解决你的问题,请参考以下文章