2016-11-09 9 views
0

コンソールのようなIO要素(シリアルデータ用)としてQTextEditを使用することを検討しています。 このアプローチの問題点は、(ユーザー)入力と(通信)出力が混在し、同期していない可能性があることです。QTextEdit for input and output

新しいユーザー入力を検出するには、特定の入力イベントにplainTextを保存して比較することができます。エンター/リターンが押されたとき。

別の方法として、別々に管理されている入出力バッファのビューとしてのみQTextEditを使用することがあります。これはまた、潜在的に非同期データの問題を単純化する可能性があります(ユーザーが入力している間にデバイスが文字を送信しますが、私の場合はほとんどありません)。 しかし、2つの "ストリーム"を1文字のタイムスタンプでマージしても、競合の可能性があります。

(単純な)解決法がありますか、または単に独立した完全入出力領域を使用するだけですか?

答えて

1

UIがコマンド駆動型で、入力が行指向の場合は、個別の入出力領域を使用するのが最も簡単な方法です。

また、リモートデバイスは、ローカルエコーなしでエコーを提供することができます。遠隔装置は、コヒーレントな表示を維持するために、意味があるときに文字をエコーバックする。

リモートエコーが遅延または使用できない場合に備えて、ユーザーのフィードバックを提供するローカル回線編集バッファを表示することもできます。そのバッファはフィードバックのためだけであり、端末の他の動作に影響を与えません。すべてのキーストロークはすぐにリモートデバイスに送信されます。

関連する問題