高级富文本处理

处理大型文件

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

如果您面临此问题,我们建议您解决以下问题

  • 您应该考虑将大段落分割成更小的段落,因为 Qt 处理小的段落更好。您还可以在规定的时间间隔插入换行符,这会使它在 QTextEdit 中看起来像一个大的段落。
  • 您可以使用 maximumBlockCount() 减少一个 QTextDocument 中的块数量。对于 QTextEdit 来说,文档的大小只取决于块的数量。
  • 当向文本编辑器中添加文本时,最好是添加到一个编辑块中(参见下面的示例)。结果是,文本编辑器不需要一次性构建整个文档结构。

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

textEdit.show();

textCursor.beginEditBlock();

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

textCursor.endEditBlock();

© 2024 Qt 公司有限公司。此处包含的文档贡献保留了各自的版权。此处提供的文档根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款获得许可。Qt 及其相应的标志是芬兰的 Qt 公司及其在世界各地其他国家的商标。所有其他商标均为其各自所有者的财产。