0

我有一个我编译并在终端上运行的二进制文件: ./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 运行程序时正确地将我的参数传递给我的程序。

4

1 回答 1

1

以下作品:

sh.start("sh", QStringList() << "-c" << "/home/r/l33t/Qt_RoughWork/source/menuandtoolbar/pnrxms" dataset-bc.arff 0.1 0.9");
于 2013-07-03T09:33:51.490 回答