高级富文本处理

处理大文件

Qt 不限制用于文本处理的文件大小。在大多数情况下,这不会存在问题。不管怎样,对于特大文件,可能体验应用程序变为无响应或内存不足。可以加载的文件大小从属硬件、Qt 及应用程序的实现。

若面临此问题,推荐解决下列问题:

  • 应考虑将大段落分解成更小段落,因为 Qt 处理小段落会更好。还可以有规律插入换行,将看起来如同一个大段落在 QTextEdit .
  • 可以缩减块数在 QTextDocument with maximumBlockCount() . The document is only as large as the number of blocks as far as QTextEdit 有涉及。
  • 当将文本添加到文本编辑时,把它添加到编辑块中有优势 (见下文范例)。结果是文本编辑不需要一次性构建整个文档结构。

给出来自列表的后一技术范例。假定文本编辑可见。

textEdit.show();
textCursor.beginEditBlock();
for (int i = 0; i < 1000; ++i) {
    textCursor.insertBlock();
    textCursor.insertText(paragraphText.at(i));
}
textCursor.endEditBlock();