6

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

我认为我需要的是一种依靠 Qt 库在这两个索引之间设置背景颜色的策略。我开始寻找QSyntaxHighlighter;但是我认为这更多地是为了使用一组预定义的法律来突出显示,而不是仅仅为了抓住 a & b 之间的任何东西并设置背景颜色。如果我可以使用语法荧光笔,请为我提供示例或参考,因为我已经阅读了文档并且没有找到任何内容。

提前感谢您的帮助!

PS只是强调html兼容性问题;由于使用了多个 < 和 > 符号,因此 html 变得有问题。

4

1 回答 1

13

你可以使用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);
于 2013-02-15T06:18:05.783 回答