警告

本节包含从C++自动翻译到Python的代码片段,可能包含错误。

高级富文本处理

处理大文件

Qt 不限制用于文本处理的文件大小。在大多数情况下,这不会成为问题。然而,对于特别大的文件,你可能会遇到应用程序无响应或内存不足的情况。你可以加载的文件大小取决于你的硬件以及 Qt 和你自己应用程序的实现。

如果你面临这个问题,我们建议你解决以下问题:

  • 您应该考虑将大段落拆分为较小的段落,因为Qt处理小段落的效果更好。您还可以定期插入换行符,这在QTextEdit中看起来与一个大段落相同。

  • 你可以使用maximumBlockCount()来减少QTextDocument中的块数量。就QTextEdit而言,文档的大小仅与块的数量有关。

  • 在向文本编辑器中添加文本时,将其添加到一个编辑块中是有优势的(见下面的示例)。这样做的结果是文本编辑器不需要一次性构建整个文档结构。

我们给出了列表中后一种技术的示例。我们假设文本编辑是可见的。

textEdit.show()
textCursor.beginEditBlock()
for i in range(0, 1000):
    textCursor.insertBlock()
    textCursor.insertText(paragraphText.at(i))

textCursor.endEditBlock()