c++ - 将参数正确传递给使用 Qt 的 QProcess 运行的 Linux 二进制文件

标签 c++ qt

我有一个编译的二进制文件,我使用以下命令在终端上运行它: ./pnrxms dataset-bc.arff 0.1 0.9 其中pnrxms是二进制名称,dataset-bc.arff,0.1,0.9是程序需要的三个参数。

为了在 Qt 中做同样的事情,我使用了下面的代码:

QProcess sh;
sh.start("sh", QStringList() << "-c" << "/home/r/l33t/Qt_RoughWork/source/menuandtoolbar/pnrxms dataset-bc.arff 0.1 0.9");

sh.waitForFinished();
QByteArray output = sh.readAll();
ui->textBrowser->setText(output);

但这没有用。它确实启动了程序,但未能获取参数。该程序在没有任何参数的情况下运行它的运行方式。

所以,然后我尝试了第二种方式:

QProcess sh;

sh.start("sh", QStringList() << "-c" << "/home/r/l33t/Qt_RoughWork/source/menuandtoolbar/pnrxms" <<"dataset-bc.arff"<<"0.1"<<"0.9");

sh.waitForFinished();
QByteArray output = sh.readAll();
ui->textBrowser->setText(output);

然而这一次,什么也没发生。也就是说,程序根本没有运行。

所以,我的问题是,当我的程序由 QProcess 运行时,我如何正确地将我的参数传递给它。

最佳答案

以下作品:

sh.start("sh", QStringList() << "-c" << "/home/r/l33t/Qt_RoughWork/source/menuandtoolbar/pnrxms" dataset-bc.arff 0.1 0.9");

关于c++ - 将参数正确传递给使用 Qt 的 QProcess 运行的 Linux 二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15562083/

相关文章:

c++ - 在 ADO 中使用最大数据库大小选项会导致 Open 命令抛出

android - 在 Qt 上为 Android 设计 GUI 的技巧

c - 如何打开我的 .sgrd 文件?

c++ - 如何在Qt中实现倒计时锁存器?

c++ - win32 hInstances 是唯一的吗?

c++ - cmake/ctest : is it possible to use the creation of build targets as tests?

c++ - 如何检查两种类型是否来自同一个模板类

c++ - 放大 WaveForm 音频的正确公式是什么?

c++ - Qt:如何在委托(delegate)绘制事件中渲染时增加 QTablewidget?

c++ - 在按下 QPushbutton 时做一些事情