QTextEdit vs QPlainTextEdit

Mar*_*nen 41 c++ qt qtextedit qplaintextedit qt5

有什么区别QTextEditQPlainTextEdit,为什么使用一个而不是另一个?

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

谷歌搜索"QTextEdit vs QPlainTextEdit""QTextEdit与QPlainTextEdit相比"并没有给我任何可以比较两个类的结果.

Bak*_*riu 38

Qt的文档:

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

QPlainText使用了与之相同的技术和概念 QTextEdit,但针对纯文本处理进行了优化.

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

后来:

与QTextEdit的差异

QPlainTextEdit是一个薄的类,通过使用最是背后的技术的实现QTextEditQTextDocument.它的性能优于QTextEdit主干,主要是使用QPlainTextDocumentLayout在文本文档中调用的不同的简化文本布局(请参阅参考资料QTextDocument::setDocumentLayout()).纯文本文档布局不支持表格或嵌入框架,并使用逐行逐段滚动方法替换像素精确高度计算.这使得处理大得多的文档成为可能,并且仍然可以通过实时启用换行来调整编辑器的大小.它还可以实现快速日志查看器(请参阅参考资料setMaximumBlockCount()).

所以区别在于QPlainTextEdit优化处理纯文本,甚至可以用于非常大的纯文本文件.文本格式化的方式也更简单.

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

  • @MarkusMeskanen [是](http://qt-project.org/doc/qt-5.0/qtwidgets/qplaintextedit.html#syntax-highlighting). (4认同)
  • 我还可以为`QPlainTextEdit`使用语法高亮显示吗? (3认同)