高级富文本处理
处理大型文件
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 公司及其在世界各地其他国家的商标。所有其他商标均为其各自所有者的财产。