2013-07-04 508 views
29

QTextEditQPlainTextEditの違いは何ですか?QTextEditとQPlainTextEdit

私はQt5を学ぶためのエクササイズとしてテキストエディタをコーディングしていますが、QTextEditまたはQPlainTextEditのどちらを使用するのか不思議です。 これまで私はQTextEditに画像を表示できることを知りましたが、それ以外は私とちょっと同じです。 私のテキストエディタは、基本的な構文ハイライト(おそらくtextChanged()シグナルを使用しています)をサポートする必要があります。

Googleは私に2つのクラスを比較する任意のまともな結果が得られませんでした「QTextEdit QPlainTextEdit VS」「QPlainTextEditに比べQTextEdit」を検索します。 Qt's documentationから

答えて

27

QPlainTextEditは、プレーンテキストをサポートする高度なビューア/エディタです。 は、大きな文書を処理し、ユーザー 入力にすばやく応答するように最適化されています。

QPlainTextは、 QTextEditと非常に同じ技術と概念を使用しますが、プレーンテキスト処理用に最適化されています。

QPlainTextEditは、段落と文字で動作します。段落は の書式設定された文字列で、 ウィジェットの幅に合わせてワードラップされます。デフォルトでは、プレーンテキストを読むときには、改行は の段落を表します。文書は0個以上の段落で構成されます。段落 は、改行で区切られています。段落 内の各文字には、フォントや色などの独自の属性があります。

以降に:QTextEdit

QPlainTextEdit

違いQTextEditQTextDocumentの背後にある 技術のほとんどを使用することによって実現し、薄いクラスです。その性能は で、QTextEdit以上のメリットは、 文書(QTextDocument::setDocumentLayout()参照)にQPlainTextDocumentLayoutという簡略化されたテキストレイアウト を使用していることがほとんどです。プレーンテキスト のドキュメントレイアウトでは、テーブルや埋め込みフレームはサポートされず、 はピクセル精度の高さ計算を行単位で 段落ごとの段落スクロールアプローチに置き換えます。これにより、大幅に大きな文書を処理することが可能になりますが、 の行の折り返しをリアルタイムで有効にしたままサイズを変更することができます。また、 高速ログビューア(setMaximumBlockCount()を参照)も作成します。

したがって、QPlainTextEditはプレーンテキストを処理するために最適化されており、非常に大きなプレーンテキストファイルでも使用できます。また、テキストのフォーマット方法も簡単です。

プレーンテキストのみをサポートする予定の場合は、QPlainTextEditが適切です。

+3

QPlainTextEditに構文ハイライトを使用することはできますか? –

+4

@MarkusMeskanen [はい](http://qt-project.org/doc/qt-5.0/qtwidgets/qplaintextedit.html#syntax-highlighting)。 – Bakuriu

+0

ありがとう@バカリュウ、私は本当にそれを知らなかった!私はそれを[QOwnNotes](http://www.qownnotes.org)に再実装する必要があります。 –

関連する問題