0
にQProcess出力を送信しますこのように:最良の方法は、現在、私がスロットに読んreadyReadStandardOutputを接続QProcessを経由して別のプログラムを起動し、テキストエディット
void myTextBrowser::readyReadStandardOutput(){
QProcess *p = qobject_cast<QProcess*>(sender());
QString txt (p->readAllStandardOutput());
...
setText(txt);
}
問題は、大きな待ち時間があるということです。私のGUIのテキストは数秒ごとに更新されるだけで、時には1分近くも更新されます。
出力を別のウィジェットに転送するより洗練されたソリューションがありますか?
呼び出されるプログラムは1時間実行される可能性がありますが、表示される出力はあまり長くありません...しかし、waitForFinished
は実行できません。
アプリケーションループ自体がイベントループをブロックし、GUIがイベントをタイムリーに処理できない場合、レイテンシが発生する可能性がありますか? – vahancho
うん...これをどうやって確認できますか? 私はGUIと何もしない場合、それはまた起こります。その間に私はGUIを使用し、他のいくつかの信号が放射されると即座に動作します。 – user7431005
'setText(txt);'でテキストブラウザにテキストを設定した後、 'update()'関数を呼び出すとどうでしょうか? – vahancho