1

トピックにあるように、実行されたexeの出力をQStringist変数にリダイレクトして、実行されたexeがQTextBrowserで行っていることをリアルタイムで表示できるようにする方法を誰か教えてもらえますか? たとえば、このような単純な echo コマンドで exe を実行し、exe 名が hello.exe で、そのソース コードが次のようになっているとします。

echo "Hello World!"

そして、このようにQtで実行します

QProcess abc

abc.start("files\\hello.exe);

これで、ソースコードに入力した内容、つまり「Hello World」がエコーされますが、GUI アプリを作成しているため表示されません。その出力を QStringList 変数に取り、リアルタイムで QTextBrowser に表示するにはどうすればよいでしょうか? 呼び出された exe を複数行出力することはできますか? exe の出力が非常に長く複数行あり、QTextBrowser に完全に収まらない場合、スクロール バーは自動的に表示されますか?

ありがとうございました。

4

1 に答える 1

2

QTのドキュメントによると(読んでください):

ハンドラを にバインドしますQProcess::readyReadStandardOutput ()。これは、プロセスが STDOUT で新しいデータを使用できるようになるたびに発行されます。次に、 を使用QProcess::readAllStandardOutput ()してデータを取得します。次に、バイト配列を に変換しQString、前の分割の残りの部分に貼り付けて、区切り文字と塗りつぶしで分割しQStringListます。次に、それを に出力しQTextBrowserます。

于 2012-08-10T06:39:24.003 に答える