2016-11-09 57 views
0

我正在考慮使用QTextEdit作爲類似控制檯的IO元素(用於串行數據)。 這種方法的問題是(用戶)輸入和(通信)輸出混合在一起,它們可能不同步。用於輸入和輸出的QTextEdit

爲了檢測新的用戶輸入,有可能在某些輸入事件上存儲和比較plainText,例如,當輸入/返回按下時。

另一種方法可能是僅將QTextEdit用作單獨管理的輸入和輸出緩衝區的視圖。這也可以簡化潛在的異步數據問題(設備在用戶輸入時發送字符,在我的情況下不太可能)。 但是,即使通過單字符時間戳合併兩個「流」也存在衝突的可能性。

有沒有(簡單)解決方案,還是我應該簡單地使用單獨的完全獨立的輸入/輸出區域?

回答

1

如果您的UI是命令驅動的,並且輸入是面向行的,則單獨的I/O區域是最簡單的方法。

或者,遠程設備可以提供回聲,而不需要本地回聲。當有意義時,遠程設備會迴應這些字符,以保持連貫的顯示。

您還可以顯示本地行編輯緩衝區,以便在遠程回顯延遲或不可用的情況下提供用戶反饋。該緩衝區僅用於反饋,並且不會影響終端的其他行爲;所有擊鍵將立即發送到遠程設備。