Mar*_*nen 41 c++ qt qtextedit qplaintextedit qt5
有什么区别QTextEdit
和QPlainTextEdit
,为什么使用一个而不是另一个?
我正在编写一个文本编辑器作为学习Qt5的练习,现在我想知道是否使用QTextEdit
或QPlainTextEdit
.到目前为止,我只发现你可以显示图像QTextEdit
,但除此之外,它们看起来与我相似.我的文本编辑器应该支持一些基本的语法高亮(可能使用textChanged()
信号),但这几乎与需求一样.
谷歌搜索"QTextEdit vs QPlainTextEdit"和"QTextEdit与QPlainTextEdit相比"并没有给我任何可以比较两个类的结果.
Bak*_*riu 38
从Qt的文档:
QPlainTextEdit
是一个支持纯文本的高级查看器/编辑器.它经过优化,可以处理大型文档并快速响应用户输入.QPlainText使用了与之相同的技术和概念
QTextEdit
,但针对纯文本处理进行了优化.
QPlainTextEdit
适用于段落和字符.段落是一个格式化的字符串,它是自动换行的,以适应窗口小部件的宽度.默认情况下,在读取纯文本时,一个换行符表示一个段落.文档由零个或多个段落组成.段落由硬线断开分隔.段落中的每个字符都有自己的属性,例如字体和颜色.
后来:
与QTextEdit的差异
QPlainTextEdit
是一个薄的类,通过使用最是背后的技术的实现QTextEdit
和QTextDocument
.它的性能优于QTextEdit
主干,主要是使用QPlainTextDocumentLayout
在文本文档中调用的不同的简化文本布局(请参阅参考资料QTextDocument::setDocumentLayout()
).纯文本文档布局不支持表格或嵌入框架,并使用逐行逐段滚动方法替换像素精确高度计算.这使得处理大得多的文档成为可能,并且仍然可以通过实时启用换行来调整编辑器的大小.它还可以实现快速日志查看器(请参阅参考资料setMaximumBlockCount()
).
所以区别在于QPlainTextEdit
优化处理纯文本,甚至可以用于非常大的纯文本文件.文本格式化的方式也更简单.
如果您打算只支持纯文本,那么这QPlainTextEdit
是正确的选择.