QTextEdit vs QPlainTextEdit

时间:2013-07-04 08:57:11

标签: c++ qt qt5 qtextedit qplaintextedit

QTextEditQPlainTextEdit之间有什么区别,为什么要使用其中一个?

我正在编写文本编辑器作为学习Qt5的练习,现在我想知道是否使用QTextEditQPlainTextEdit。 到目前为止,我只发现你可以在QTextEdit中显示图像,但除此之外,它们看起来与我相似。 我的文本编辑器应该支持一些基本的语法高亮(可能使用textChanged()信号),但这几乎与要求一样。

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

1 个答案:

答案 0 :(得分:32)

来自Qt's documentation

  

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

     

QPlainText使用的技术和概念非常相似   QTextEdit,但针对纯文本处理进行了优化。

     

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

后来:

  

与QTextEdit的区别

     

QPlainTextEdit是一个瘦的类,通过使用大部分内容来实现   QTextEditQTextDocument背后的技术。它的表现   超过QTextEdit的好处主要来自使用不同的和   文本上称为QPlainTextDocumentLayout的简化文本布局   文件(见QTextDocument::setDocumentLayout())。纯文本   文档布局不支持表格,也不支持嵌入框架   用逐行替换像素精确高度计算   分别逐段滚动方法。这样做   可以处理更大的文档,并仍然可以调整大小   实时启用换行的编辑器。它也是一个   快速日志查看器(请参阅setMaximumBlockCount())。

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

如果您打算只支持纯文本,那么QPlainTextEdit是正确的选择。