如何在QTextEdit中突出显示一串文本

时间:2013-02-14 22:46:49

标签: c++ qt stylesheet qstring qtextedit

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

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

提前感谢您的帮助!

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

1 个答案:

答案 0 :(得分:11)

您可以使用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);