如何查找 QTextEdit 中显示的数据长度

Posted

技术标签:

【中文标题】如何查找 QTextEdit 中显示的数据长度【英文标题】:How to find length of data displayed in QTextEdit 【发布时间】:2013-12-01 10:11:53 【问题描述】:

我在 QTextEdit 中显示来自设备的实时实时数据,数据的长度超过 QTextEdit 的大小,因此出现滚动,但它们无用,因为它们无法移动,因为新数据正在替换旧数据不断地。所以我看不到完整的数据。所以我移除了滚动条,现在数据被截断了,现在我想知道截断数据的长度,以便我也可以为显示该数据做准备..

【问题讨论】:

没有可靠的方法来做到这一点。您可能需要检查 fontmetrics,然后汇总文本中的所有间距,然后计算出 QTextEdit 的像素高度。它很痛苦,结果不会准确。 【参考方案1】:

让一个 GUI 元素经常改变大小可能是不可取的,所以也许你可以采取不同的方式:

启用滚动条。 当用户触摸滚动条时,停止更新小部件并启动一个计时器对象(X 秒后触发)。 当用户滚动时,重置计时器。 在 X 秒不活动后或当用户滚动到顶部时,再次开始更新小部件。

另一种选择: 添加一个按钮以启用/禁用对小部件的更新,以便用户可以平静地阅读其内容。

【讨论】:

【参考方案2】:

是否可以选择在后台缓冲数据并为用户提供一个“刷新”按钮,允许他将数据从缓冲区获取(部分)到 QTextEdit 中?

每次他按下“刷新”按钮时,他都会从缓冲区中获取另一个块,同时你会添加到它,这样你就不会丢失任何东西。

【讨论】:

以上是关于如何查找 QTextEdit 中显示的数据长度的主要内容,如果未能解决你的问题,请参考以下文章

QT自定义QTextEdit实现大数据的实时刷新显示

QT textedit实现查找替换

在 QT4.8.5 中的 QTextEdit 上显示光标

Qt之解析HTML

Qt之解析HTML

Qt:如何在 QVBoxLayout 中交替对齐 QTextEdit?