如何突出显示文本的一个QTextEdit内的字符串(How to highlight a strin

2019-07-19 22:35发布

我目前正在开发使用的Qt4工作申请学生程序员。 我建立一个公式编辑器,我有试图强调,我国内的字符串问题的QTextEdit领域。 我有过的QTextEdit解析字符串和返回将错误所在的开始和结束的整数的函数。 我最初的策略是使用HTML标记在这两点突出的错误。 不幸的似乎是HTML标记和公式语法的问题。

我想我需要的是依赖于Qt的图书馆设置这两个指数之间的背景色的策略。 我开始寻找一个QSyntaxHighlighter ; 不过,我认为这是更多的使用一组预定义的法律突出而不是仅仅抓住了A和B之间的任何东西,并设置背景颜色。 如果我可以使用语法高亮,请提供给我和实例或参考,因为我已经通过文档阅读,并没有发现任何东西。

感谢提前任何帮助!

PS只是为了强调对HTML兼容性问题; HTML成为问题由于使用多个<和>迹象。

Answer 1:

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


文章来源: How to highlight a string of text within a QTextEdit