用于输入和输出的QTextEdit

问题描述:

我正在考虑使用QTextEdit作为类似控制台的IO元素(用于串行数据)。 这种方法的问题是(用户)输入和(通信)输出混合在一起,它们可能不同步。用于输入和输出的QTextEdit

为了检测新的用户输入,有可能在某些输入事件上存储和比较plainText,例如,当输入/返回按下时。

另一种方法可能是仅将QTextEdit用作单独管理的输入和输出缓冲区的视图。这也可以简化潜在的异步数据问题(设备在用户输入时发送字符,在我的情况下不太可能)。 但是,即使通过单字符时间戳合并两个“流”也存在冲突的可能性。

有没有(简单)解决方案,还是我应该简单地使用单独的完全独立的输入/输出区域?

如果您的UI是命令驱动的,并且输入是面向行的,则单独的I/O区域是最简单的方法。

或者,远程设备可以提供回声,而不需要本地回声。当有意义时,远程设备会回应这些字符,以保持连贯的显示。

您还可以显示本地行编辑缓冲区,以便在远程回显延迟或不可用的情况下提供用户反馈。该缓冲区仅用于反馈,并且不会影响终端的其他行为;所有击键将立即发送到远程设备。