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

Wyl*_*SG. 5 c++ qstring qt stylesheet qtextedit

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

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

在此先感谢您的帮助!

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

han*_*ank 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);
Run Code Online (Sandbox Code Playgroud)