【问题标题】:QTextEdit vs QPlainTextEditQTextEdit 与 QPlainTextEdit
【发布时间】:2013-07-02 05:00:42
【问题描述】:

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

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

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

【问题讨论】:

    标签: c++ qt qt5 qtextedit qplaintextedit


    【解决方案1】:

    来自Qt's documentation

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

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

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

    后来:

    与 QTextEdit 的区别

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

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

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

    【讨论】:

    • 我还能对QPlainTextEdit 使用语法高亮吗?
    • @MarkusMeskanen Yes.
    • 谢谢@Bakuriu,我真的不知道!我必须在QOwnNotes 中重新实现它。
    • 简单的编辑器/IDE 有什么更好的选择?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 2011-06-23
    相关资源
    最近更新 更多