【发布时间】:2020-07-18 16:17:23
【问题描述】:
我想比较两个 TextArea 的文本,并更改不同文本的线条背景颜色,但我不知道如何在一个 TextArea 中有两个背景颜色。也许应该习惯得到它,我该怎么办? 或导入 .js 来获取它?我该怎么办?
【问题讨论】:
-
这能回答你的问题吗? Changing a single strings color within a QTextEdit 不用改变字体颜色,你可以设置成背景色。
我想比较两个 TextArea 的文本,并更改不同文本的线条背景颜色,但我不知道如何在一个 TextArea 中有两个背景颜色。也许应该习惯得到它,我该怎么办? 或导入 .js 来获取它?我该怎么办?
【问题讨论】:
作为更高级的解决方案,您可以使用https://doc.qt.io/qt-5/qtextdocument.html QTextDocument 来操作TextArea 内容。原始文本文档可通过此属性 https://doc.qt.io/qt-5/qml-qtquick-textedit.html#textDocument-prop 获得。从这一点开始,您可以分配自己的语法突出显示。但这需要您的研究。
另一方面,您可以查看此示例https://doc.qt.io/qt-5/qtwidgets-widgets-codeeditor-example.html,并使用此类https://doc.qt.io/qt-5/qsyntaxhighlighter.html 可以将现有的QTextDocument 分配给QSyntaxHighlighter。我猜想,同样可以用于 QML TextArea 元素。
由于TextArea 具有textDocument 属性,因此应该可以为QtQuick 控件重新实现它。
说实话,我从来没有处理过这样的任务,但是这个例子看起来对这种情况非常有用。如果您不需要高级功能(例如实时内容更改),您可能应该坚持使用 cmets 中建议的富文本格式选项。
【讨论】: