如何在QTextEdit中高亮显示文本字符串

How to highlight a string of text within a QTextEdit

本文关键字:显示 文本 字符串 高亮 QTextEdit      更新时间:2023-10-16

我是一名学生程序员,目前正在使用Qt4开发一个应用程序。我正在构建一个等式编辑器,在试图突出显示QTextEdit字段中的字符串时遇到问题。我有一个函数,它解析QTextEdit字符串,并返回错误所在位置的起始和结束整数。我最初的策略是在这两点使用HTML标记来突出显示错误。不幸的是,html标记和等式语法似乎存在问题。

我想我需要的是一种策略,它依赖于Qt的库来设置这两个索引之间的背景色。我开始寻找QSyntaxHighlighter;然而,我认为这更多的是为了强调使用预定义的一组定律,而不是为了抓住a&b并设置背景颜色。如果我可以使用语法高亮,请提供一个示例或参考,因为我已经阅读了文档,但没有找到任何内容。

感谢您提前提供的帮助!

第页。S.只是为了强调html兼容性问题;html由于多个<和>使用的标志。

您可以使用QTextCursorQTextCharFormat

QTextEdit *edit = new QTextEdit;
...
int begin = ...
int end = ...
...
QTextCharFormat fmt;
fmt.setBackground(Qt::yellow);
QTextCursor cursor(edit->document());
cursor.setPosition(begin, QTextCursor::MoveAnchor);
cursor.setPosition(end, QTextCursor::KeepAnchor);
cursor.setCharFormat(fmt);