Qt QProcess

Qt QProcess,第1张

本文介绍,在Linux环境下,使用Qt中的 QProcess 类执行shell命令并获取输出。

头文件: #include <QProcess>

一、函数接口

QProcess 类提供了三个函数

二、执行命令

这里主要介绍 execute() 和 start() :

execute() 会将命令输出直接打印到控制台,调用程序无法捕获。

调用程序可通过 readAllStandardOutput() 捕获shell命令的输出

三、管 道

对于shell命令中的 | ,直接传入参数是不行的。

以上的方式是无法执行的。

可以将整个命令作为 sh 的参数传入 或 使用 QProcess::setStandardOutputProcess(QProcess destination) 即将一个进程的标准输出流传入目标进程的标准输入流

对于需要sudo权限的命令,需要使用sudo权限打开qtcreator,或者直接在命令前加上sudo(不建议)。

当然, QProcess 不仅仅可以执行shell命令,也可以用于执行调用外部程序。

正确的做法就是在 mainwindowcpp 里面去包含 funch

编译会报错: 无法找到函数calculate(); 说明编译器没有找到 calculate函数的实现

这里就要分成两种情况

一种就是编译器没有找到 funccpp 这个文件,你可以尝试把 funccpp 加入到工程里面或把funccpp文件所在路径(完整路径)加入到Qt pro 文件中

DEPENDPATH = 你的路径

另一种就是你的 calculate() 函数格式写错了所以找到了funccpp文件也找不到 calculate 函数

因为 C和C++的编译规则不一样 试试在extern "C"{

funch

}

!!

在qt里面有一个类QProcess,这个类的作用是调用外部的可执行程序,在qt里面使用这个类

来调用外面的mplayer来播放视频,在这里就需要在提到买player的一种播放模式——slave模式,这种模式下面,是通过管道发送给mplayer相应的信息(在qt里面调用了mplayer后,就相当于产生了一个进程),就是,简单的说,在这种模式下面,你可以在程序里面来写入相应的命令来控制mplayer的播放,下面给出一点相应的实现代码:

首先,要创建一个累QProcess

mplayerProcess = new QProcess(this);

mplayerProcess->setProcessChannelMode(QProcess::MergedChannels); //这个一定要设置

mplayerProgram = tr("/usr/bin/mplayer"); //你的mplayer的路径

timeClock = new QTimer(this);

接下来就是通过命令来控制mplayer播放了:

QStringList args;

args

你以前的那个已经生产exe了,相当于在Qt工程下调用外部的exe应用程序;

QProcess myProcess = new QProcess();

myProcess->start("c:/xxxxx/xxxexe");

以上就是关于Qt QProcess全部的内容,包括:Qt QProcess、qt的类函数如何调调用外部独立函数的问题、qt里面如何调用mplayer等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9997103.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存