qt实现文本高亮

重载QSyntaxHighlighter的highlightBlock

void MyHighlighter::highlightBlock(const QString &text)

{

QTextCharFormat myClassFormat;

myClassFormat.setFontWeight(QFont::Bold);

myClassFormat.setForeground(Qt::darkMagenta);

QString pattern = "\\bMy[A-Za-z]+\\b";

QRegExp expression(pattern);

int index = text.indexOf(expression);

while (index >= 0) {

int length = expression.matchedLength();

setFormat(index, length, myClassFormat);

index = text.indexOf(expression, index + length);

}

}

调用方式:

QTextEdit *editor = new QTextEdit;

MyHighlighter *highlighter = new MyHighlighter(editor->document());

相关推荐
冷眼看人间恩怨3 分钟前
【Qt笔记】QTextEdit和QPlainTextEdit 控件详解
c++·笔记·qt
skywalk81634 分钟前
GitHub - riscv-software-src/riscv-isa-sim: Spike, a RISC-V ISA Simulator
开发语言·数据库
Dongliner~10 分钟前
【C++多线程编程:六种锁】
开发语言·c++
摇光9316 分钟前
js策略模式
开发语言·javascript·策略模式
游客52037 分钟前
设计模式-结构型-桥接模式
开发语言·python·设计模式·桥接模式
Pandaconda43 分钟前
【新人系列】Python 入门(二十五):Socket 网络编程
开发语言·网络·笔记·后端·python·面试·网络编程
风_流沙1 小时前
【python基础】python中copy用法
开发语言·python
水水阿水水1 小时前
第二章:面向对象之封装(一)
开发语言·c++·算法
Yang-Never1 小时前
Canvas->Bitmap绘制
android·java·开发语言·kotlin·android studio·idea
曦月合一1 小时前
java中日期如何比大小
java·开发语言·后端