我正在使用从 QTextEdit 继承的 PyQt QTextBrowser 小部件。我将文本附加到它作为日志信息显示的一部分。记录可能会持续数周。
保存文本的缓冲区的深度是多少?以另一种方式问,我可以附加多少文本并且仍然让用户能够使用滚动条滚动回?
此设置是否可配置?它最终会使用我所有系统的内存吗?
谢谢。
我正在使用从 QTextEdit 继承的 PyQt QTextBrowser 小部件。我将文本附加到它作为日志信息显示的一部分。记录可能会持续数周。
保存文本的缓冲区的深度是多少?以另一种方式问,我可以附加多少文本并且仍然让用户能够使用滚动条滚动回?
此设置是否可配置?它最终会使用我所有系统的内存吗?
谢谢。
文本大小没有自动管理:它只会增长,直到可用内存耗尽。
最简单的解决方案可能是对文档中的文本块数量设置一个固定限制:
logger.document().setMaximumBlockCount(5000)
一旦超过阈值,这将开始从文档开头删除块。您显然必须自己计算出安全最大值和/或使其成为用户可配置的设置。
请注意,如果日志输出不需要富文本格式,QPlainTextEdit可能是更好的选择,因为它正是为此类任务而设计的。