我是学生程序员,正在使用Qt4开发工作应用程序。我正在构建一个方程式编辑器,我在尝试突出显示QTextEdit字段中的字符串时遇到问题。我有一个函数,它解析QTextEdit字符串并返回错误所在的开始和结束整数。我最初的策略是在这两点使用HTML标记来突出显示错误。遗憾的是,html标记和方程式语法似乎存在问题。
我认为我需要的是一种依靠Qt库来设置这两个索引之间背景颜色的策略。我开始寻找QSyntaxHighlighter;但是我认为这更多的是突出显示使用一组预定义的法则,而不仅仅是在一个&之间抓住任何东西。 b并设置背景颜色。如果我可以使用语法高亮,请提供我和示例或参考,因为我已经阅读了文档,但没有找到任何内容。
提前感谢您的帮助!
P.S。只是为了强调html兼容性问题;由于多个< html成为问题。和>使用的标志。
答案 0 :(得分:11)
您可以使用QTextCursor
和QTextCharFormat
:
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);