【问题标题】:QProcess working example - C++QProcess 工作示例 - C++
【发布时间】:2016-11-09 00:40:09
【问题描述】:

我正在尝试启动外部程序并与它们通信。

我想使用 QProcess 在后台运行这个应用程序。并且还将命令从这段代码传递给这个进程。

有人可以阐明这一点,并在代码运行时相应地指导我执行命令吗?

在 python 中类似这样的东西,但对于使用 QProcess 的 c++

p = subprocess.Popen(['mpg321', '-R', 'anyword'], stdin=PIPE)
p.stdin.write('LOAD test.mp3\n')

【问题讨论】:

  • popen() 函数接受两个参数:命令字符串和"r""w",具体取决于您是要写入标准输入还是从命令的标准输出读取跑步。您显示的部分错误消息为您提供了该信息 - 命令和模式。如果要将程序的标准输入中继到运行的命令,则需要循环,从标准输入读取数据并写入成功打开的f 文件流。您应该考虑使用<cstdio> 代替<stdio.h>;您现有的代码是 C 代码(以及 C++)。
  • 我有类似的东西,就我而言,我使用共享内存。在共享内存中,我有一个命令缓冲区,其中一个进程写入,另一个进程从中读取。
  • popen("mpg321 -R ewqe", "w")

标签: c++ c linux qprocess


【解决方案1】:

试试这个:

QProcess subprocess;
subprocess.start("mpg321", QStringList()  << "-R" << "anyword");
if (!subprocess.waitForStarted())
    return false;

subprocess.write("LOAD test.mp3\n");

【讨论】:

  • 它是用 C++ 编写的吗?因为我的目标是 C++ 代码。当我尝试运行它时..即#include 它显示:致命错误:QProcess:没有这样的文件或目录你能帮我吗
  • 我正在尝试使用 sudo apt-get install build-essential libgl1-mesa-dev 但仍然显示相同的错误。
  • 你能建议我如何在我的 linux (raspberry) 中安装 QT
  • QProcess 是 Qt 框架的一部分。您将需要安装 Qt 头文件。也许是这样的:apt-get install qt-dev-tools
  • 当然..我会试着让你知道
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2020-08-16
  • 1970-01-01
  • 2021-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多