QTextEdit 与 QPlainTextEdit

问题描述 投票:0回答:1

QTextEdit
QPlainTextEdit
之间有什么区别,为什么要使用其中一个而不是另一个?

我正在编写一个文本编辑器作为学习 Qt5 的练习,现在我想知道是否使用

QTextEdit
还是
QPlainTextEdit
。 到目前为止,我只发现你可以在
QTextEdit
中显示图像,但除此之外,它们看起来与我有些相同。 我的文本编辑器应该支持一些基本的语法突出显示(可能使用
textChanged()
信号),但这几乎满足了要求。

Google 搜索 “QTextEdit vs QPlainTextEdit”“QTextEdit 与 QPlainTextEdit 相比” 没有给我任何比较这两个类的不错的结果。

c++ qt qt5 qtextedit qplaintextedit
1个回答
49
投票

来自 QPlainTextEdit 的文档

QPlainTextEdit
是支持纯文本的高级查看器/编辑器。它 经过优化,可处理大型文档并快速响应用户 输入。

QPlainText 使用与

QTextEdit
,但针对纯文本处理进行了优化。

QPlainTextEdit
适用于段落和字符。一个段落是一个 格式化字符串,其自动换行以适合宽度 小部件。默认情况下,读取纯文本时,一个换行符表示一个 段落。文档由零个或多个段落组成。段落 由硬换行符分隔。段落中的每个字符 有自己的属性,例如字体和颜色。

QPlainTextEdit
是一个瘦类,通过使用大部分
QTextEdit
QTextDocument
背后的技术。其性能 与
QTextEdit
相比的好处主要来自于使用不同的和 文本上称为
QPlainTextDocumentLayout
的简化文本布局 文档(参见
QTextDocument::setDocumentLayout()
)。纯文本 文档布局不支持表格或嵌入框架,并且 用逐行计算代替像素精确的高度计算 分别采用逐段滚动的方式。这使得 可以处理更大的文档,并且仍然可以调整大小 实时启用换行的编辑器。这也使得 快速日志查看器(参见
setMaximumBlockCount()
)。

所以区别在于,

QPlainTextEdit
针对处理纯文本进行了优化,甚至可以用于非常大的纯文本文件。而且文本格式化的方式也更简单。

如果您打算仅支持纯文本,那么

QPlainTextEdit
是正确的选择。

© www.soinside.com 2019 - 2024. All rights reserved.