コンパイルして端末で実行するバイナリがあります。
./pnrxms dataset-bc.arff 0.1 0.9
ここで、pnrxms はバイナリ名で、dataset-bc.arff、0.1、0.9 はプログラムに必要な 3 つのパラメータです。
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);
しかし、これはうまくいきませんでした。プログラムを開始しましたが、引数のフェッチに失敗しました。プログラムは、パラメーターなしで実行される方法で実行されました。
それで、私はこの2番目の方法を試しました:
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 によって実行されているプログラムに引数を正しく渡すにはどうすればよいかということです。