1

私は Qt があまり得意ではなく、Ubuntu の知識もあまりありませんが、ここで私がしていることは次のとおりです。gnome-terminal を起動し、そこから *.sh ファイルを開始します。Qtからそれを行う方法は? 私が作った:

QProcess *proc = new QProcess;
proc->start("gnome-terminal");
proc->write("build.sh\n");

しかし、ターミナルが開いているだけで何も起こりません。手動でコマンドを入力できますが、QProcessから行う必要があります。

4

2 に答える 2

0

あなたが実行するプログラムはバッファリングされていると言われているので、プログラムだけが十分な出力を書き、それからあなたはそれらを得ることができます。

私は今これに取り組んでいますが、今まで助けになるものは何も見つかりませんでした。

編集:

OK、Qprocessは事前にパイプを使用している可能性が高く、パイプには4Kバッファーがあるため、このバッファーをスキップすることをお勧めします。

次のようにプログラムを実行する場合stdbuf

stdbuf -i0 -o0 -e0 gnome-terminal

それはうまくいくかもしれません

于 2012-09-17T02:33:08.420 に答える
0

Gnome-terminal は端末エミュレーターであり、コマンドを実行しません (内部コマンドでない場合)。

必要なもの:

QProcess *proc = new Process(); proc->start("sh"); proc->waitForStarted();

または他のコマンド ライン インタープリター (sh、bash、cmd.exe) を使用してから、writeメソッドを使用して CLI にコマンドを書き込むことができます。

そして、出力を読みたい場合は、これが必要です:

QString tmp = mProcess->readAllStandardOutput();

于 2015-09-28T20:56:05.077 に答える