我有一个编译的二进制文件,我使用以下命令在终端上运行它:
./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/