高度なリッチテキスト処理

大きなファイルの扱い

Qt ではテキスト処理に使用するファイルのサイズを制限していません。ほとんどの場合、これは問題になりません。しかし、特に大きなファイルの場合、アプリケーションが応答しなくなったり、メモリ不足になったりすることがあります。読み込めるファイルのサイズは、ハードウェアや、Qt やアプリケーションの実装に依存します。

この問題に直面した場合、以下の問題に対処することをお勧めします:

  • Qt は小さな段落をうまく扱うので、大きな段落を小さな段落に分割することを検討すべきです。また、一定の間隔で改行を挿入することもできます。この場合、QTextEdit の1つの大きな段落と同じように見えます。
  • maximumBlockCount() を使えば、QTextDocument のブロックの量を減らすことができます。QTextEdit に関する限り、ドキュメントはブロックの数だけ大きくなります。
  • テキスト編集にテキストを追加する場合、編集ブロック内に追加するのが有利です(以下の例を参照)。その結果、テキスト編集は文書構造全体を一度に構築する必要がなくなります。

リストの中から後者のテクニックの例を挙げます。ここではテキスト編集が表示されているものとします。

textEdit.show();

textCursor.beginEditBlock();

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

textCursor.endEditBlock();

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。