Qtを使用してQProcessに関するいくつかの問題があります。私はプッシュボタンのonClickイベントで次の関数を接続しました。基本的には、このボタンをクリックすると別のファイルを実行し、Qtプログラムでその出力を取得します。このファイルcalculator
が実行され、出力が表示され、ユーザーからの入力が待機されます。シナリオではQtで連続したQProcessのstdoutputを読む
void runPushButtonClicked() {
QProcess myprocess;
myprocess.start("./calculator")
myprocess.waitForFinished();
QString outputData= myprocess.readStandardOutput();
qDebug() << outputData;
}
calculator
のみいくつかの結果を出力し、最終的に終了し、そのようなファイルであるとき、これは完璧に動作します。しかし、いくつかの結果を出力してから計算機がユーザからの入力を待っている場合、私はoutputData
に何も得ません。実際には、waitForFinished()
はタイムアウトしますが、waitForFinished()
を削除しても、outputData
はまだ空です。
私は既にここで利用可能なソリューションのいくつかを試しましたが、このケースを処理できませんでした。どんな指導も高く評価されます。
_私はすでにいくつかのソリューションを試しました。あなたが試したことを示してください。 –
信号とスロットの接続による接続(プロセス、SIGNAL(readyRead())、this、SLOT(readStdOut())); – Daud