Spec-Zone.ru › Qt 5.9

Обработка расширенного форматированного текста

Обработка больших файлов

Qt не ограничивает размер файлов, используемых для обработки текста. В большинстве случаев это не создаст проблем. Однако для очень больших файлов вы можете столкнуться с тем, что ваше приложение перестанет реагировать или у вас закончится оперативная память. Размер загружаемых файлов зависит от вашего оборудования, реализации Qt и вашего собственного приложения.

Если вы столкнулись с этой проблемой, мы рекомендуем рассмотреть следующие вопросы:

  • Вы должны рассмотреть возможность разделения больших абзацев на меньшие, так как Qt лучше обрабатывает небольшие абзацы. Вы также можете вставлять разрывы строк через регулярные интервалы, что будет выглядеть так же, как один большой абзац в QTextEdit.
  • Вы можете уменьшить количество блоков в QTextDocument с помощью maximumBlockCount(). Для QTextEdit документ будет иметь размер, соответствующий количеству блоков.
  • При добавлении текста в текстовый редактор выгодно добавлять его в блок редактирования (см. пример ниже). Результатом является то, что текстовому редактору не нужно сразу создавать всю структуру документа.

Мы приводим пример последней техники из списка. Мы предполагаем, что текстовый редактор отображается.

textEdit.show();

textCursor.beginEditBlock();

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

textCursor.endEditBlock();

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/richtext-advanced-processing.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API