博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
qt关键字高亮
阅读量:5326 次
发布时间:2019-06-14

本文共 1636 字,大约阅读时间需要 5 分钟。

qt的高亮显示主要是使用qsyntaxhighlighter类,由于qsyntaxhighlighter是抽象基类,所以需要继承并自己实现

//头文件

#ifndef MARKDOWN_HIGHLIGHTER_H
#define MARKDOWN_HIGHLIGHTER_H
 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
 
class markdown_highlighter : public QSyntaxHighlighter
{
public:
markdown_highlighter(QTextEdit *parent = 0);
 
void highlightBlock(const QString &text);
void SetColorText(const QString &str, const QColor &color);
void clearRules();
 
private:
struct HighlightingRule
{
QRegExp pattern;
QTextCharFormat format;
};
QVector
highlightingRules;
};
 
#endif // MARKDOWN_HIGHLIGHTER_H

//cpp文件

#include "markdown_highlighter.h"
 
markdown_highlighter::markdown_highlighter(QTextEdit *parent)
: QSyntaxHighlighter(parent)
{
highlightingRules.clear();
}
 
void markdown_highlighter::highlightBlock(const QString &text)
{
foreach (HighlightingRule rule, highlightingRules)
{
QRegExp expression(rule.pattern);
int index = text.indexOf(expression);
while (index >= 0)
{
int length = expression.matchedLength();
setFormat(index, length, rule.format);
index = text.indexOf(expression, index + length);
}
}
}
 
void markdown_highlighter::SetColorText(const QString &str, const QColor &color)
{
HighlightingRule rule;
rule.pattern = QRegExp(str);
QTextCharFormat format;
format.setForeground(color);
rule.format = format;
highlightingRules.append(rule);
}
 
void markdown_highlighter::clearRules()
{
highlightingRules.clear();
}
 

然后在你需要高亮的地方即可

md_high = new markdown_highlighter(ui->textEdit);
md_high->SetColorText("##",Qt::green);

转载于:https://www.cnblogs.com/ysherlock/p/7822293.html

你可能感兴趣的文章
windows编程ASCII问题
查看>>
.net webService代理类
查看>>
Code Snippet
查看>>
Node.js Express项目搭建
查看>>
zoj 1232 Adventure of Super Mario
查看>>
Oracle 序列的应用
查看>>
1201 网页基础--JavaScript(DOM)
查看>>
组合数学 UVa 11538 Chess Queen
查看>>
oracle job
查看>>
Redis常用命令
查看>>
XML学习笔记(二)-- DTD格式规范
查看>>
IOS开发学习笔记026-UITableView的使用
查看>>
[转载]电脑小绝技
查看>>
windos系统定时执行批处理文件(bat文件)
查看>>
thinkphp如何实现伪静态
查看>>
BZOJ 2243: [SDOI2011]染色( 树链剖分 )
查看>>
BZOJ 1925: [Sdoi2010]地精部落( dp )
查看>>
c++中的string常用函数用法总结!
查看>>
界面交互之支付宝生活圈pk微信朋友圈
查看>>
<转>Shell脚本相关
查看>>