QTextEdit vs QPlainTextEdit
QTextEdit vs QPlainTextEdit
QTextEdit
和QPlainTextEdit
有什么区别,为什么要使用一个而不是另一个?
正在编写文本编辑器作为学习Qt5的练习,现在我想知道是使用QTextEdit
还是QPlainTextEdit
。到目前为止,我只发现您可以在QTextEdit
中显示图像,但除此之外,它们看起来与我有些相同。我的文本编辑器应该支持一些基本的语法突出显示(可能使用textChanged()
信号(,但这几乎是要求而言。
谷歌搜索"QTextEdit vs QPlainTextEdit"和"QTextEdit 与 QPlainTextEdit 相比">并没有给我任何像样的结果来比较这两个类。
来自Qt的文档:
QPlainTextEdit
是一个支持纯文本的高级查看器/编辑器。它 经过优化,可处理大型文档并快速响应用户 输入。QPlainText 使用的技术和概念与
QTextEdit
,但针对纯文本处理进行了优化。
QPlainTextEdit
适用于段落和字符。段落是 格式化字符串,自动换行以适应 控件。默认情况下,读取纯文本时,一个换行符表示 段。文档由零个或多个段落组成。段落 用硬换行符分隔。段落中的每个字符 具有自己的属性,例如字体和颜色。
后来:
与QTextEdit的差异
QPlainTextEdit
是一个瘦类,通过使用大多数QTextEdit
和QTextDocument
背后的技术 .它的性能QTextEdit
的好处主要源于使用不同的和 简化的文本布局,称为文本上的QPlainTextDocumentLayout
文档(见QTextDocument::setDocumentLayout()
(。纯文本 文档布局不支持表格或嵌入框架,并且 将像素精确的高度计算替换为逐行计算 分别是逐段滚动方法。这使得它 可以处理明显更大的文档,并且仍然可以调整大小 实时启用换行的编辑器。它还使 快速日志查看器(请参阅setMaximumBlockCount()
(。
因此,不同之处在于QPlainTextEdit
针对处理纯文本进行了优化,甚至可以用于非常大的纯文本文件。此外,文本格式的方式也更简单。
如果您打算仅支持纯文本,那么QPlainTextEdit
是正确的选择。
- 在VS代码中交叉编译Windows与Linux上的MinGW的SDL程序
- 如何为模板化对象创建模板向量?VS正在投掷C3203
- 数据成员SFINAE的C++17测试:gcc vs clang
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 在for循环中使用auto vs decltype(vec.size())来处理字符串的向量
- 正在VS调试器中监视映射条目
- Confusion: decltype vs std::function
- 将IBM Rhapsody模型集成到VS 2019中
- VS Code "command":"make"与终端窗口中的命令行"make"不同
- 使用VS Code和CMake Tools运行自定义命令
- 修改 VS Code 中的默认C++代码段
- 如何使用c++在VS 2019上运行SQL查询
- vs 2015 constexpr变量不恒定,但与2019相比还好吗
- 完美前进使用 std::forward vs RefRefCast
- 从VS 2015更新3更新到VS2015更新3 d后浮点计算行为不同的原因
- VS 2015 链接错误 无法构建依赖于 libcurl 的项目
- consteval wrapper vs. source_location
- VS Code C++:不准确的系统包括路径错误(wchar.h,boost/lambda/lambda.hpp)
- QStringList vs list<shared_ptr<QString>> 性能比较C++
- QTextEdit vs QPlainTextEdit