2013-07-04 62 views
29

QTextEditQPlainTextEdit之間的區別是什麼,爲什麼使用其中之一?QTextEdit vs QPlainTextEdit

我正在編寫一個文本編輯器作爲練習來學習Qt5,現在我想知道是否使用QTextEditQPlainTextEdit。 到目前爲止,我只發現你可以在QTextEdit中顯示圖像,但除此之外,它們看起來有點相同。 我的文本編輯器應該支持一些基本的語法高亮顯示(可能使用textChanged()信號),但這與要求相差無幾。

谷歌搜索「的QTextEdit VS QPlainTextEdit」沒有給我會比較兩個班拿得出手的成績「相比,QPlainTextEdit的QTextEdit」。

回答

27

Qt's documentation

QPlainTextEdit是一種先進的瀏覽器/編輯器支持純文本。它 經過優化,可處理大型文檔並快速響應用戶輸入。

QPlainText使用非常相同的技術和概念 QTextEdit,但對於純文本的處理進行了優化。

QPlainTextEdit適用於段落和字符。一個段落是一個 格式化的字符串,它被字符包裝以適應 小部件的寬度。默認情況下,當閱讀純文本時,一個換行符表示 段落。文檔由零個或多個段落組成。段落 由硬換行符分隔。段落 中的每個字符都有其自己的屬性,例如字體和顏色。

,稍後:

差異來的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

謝謝@Bakuriu,我真的不知道!我必須在[QOwnNotes](http://www.qownnotes.org)中重新實施。 –