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