QTextEdit和QPlainTextEdit有什么区别,为什么要用一种而另一种呢?
我正在编写一个文本编辑器作为学习Qt5的练习,现在我想知道是使用QTextEdit还是QPlainTextEdit。到目前为止,我只发现您可以在QTextEdit中显示图像,但除此之外,它们在我看来有些相同。我的文本编辑器应该支持一些基本的语法突出显示(可能使用textChanged()信号),但这几乎是需求的一部分。
谷歌搜索"QTextEdit vs QPlainTextEdit“和"QTextEdit比较QPlainTextEdit”并没有给出任何比较这两个类的好结果。
发布于 2013-07-04 09:05:37
来自Qt's documentation
QPlainTextEdit是支持纯文本的高级查看器/编辑器。对其进行了优化,以处理大型文档并快速响应用户输入。 QPlainText使用与QTextEdit相同的技术和概念,但对纯文本处理进行了优化。QPlainTextEdit处理段落和字符。段落是一个格式化的字符串,它被字包装以适应小部件的宽度。默认情况下,当读取纯文本时,一个换行符表示一个段落。文档由零个或多个段落组成。段落之间用硬行分隔。段落中的每个字符都有自己的属性,例如字体和颜色。
后来:
差异到QTextEdit
QPlainTextEdit是一个瘦类,它使用QTextEdit和QTextDocument背后的大多数技术来实现。它在QTextEdit上的性能优势主要来自于在文本文档上使用一个不同的简化文本布局,称为QPlainTextDocumentLayout(参见QTextDocument::setDocumentLayout())。纯文本文档布局不支持表格或嵌入式框架,并且用逐行逐段滚动的方法代替像素精确的高度计算。这使得处理大得多的文档成为可能,并且仍然可以在实时启用行包装的情况下调整编辑器的大小。它还提供了一个快速日志查看器(请参阅setMaximumBlockCount())。
因此,不同之处在于,QPlainTextEdit是为处理纯文本而优化的,即使在非常大的纯文本文件中也可以使用。此外,文本的格式化方式也更简单。
如果您计划只支持纯文本,那么QPlainTextEdit是正确的选择。
https://stackoverflow.com/questions/17466046
复制相似问题