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的主要内容,如果未能解决你的问题,请参考以下文章

qt编译问题

Linux 打包 QT 程序

QT学习之QT 下载安装

Qt 找不到服务 - “org.qt-project.qt.mediaplayer”

[QT]加快qt编译:设置默认多核编译qt

qt + opengl 开发环境的搭建