语法高亮_Qt官方示例语法高亮器
语法高亮显示示例展示了如何执行简单的语法高亮显示(对C ++文件语法高亮)。
该示例主要使用QTextEdit和QSyntaxHighlighter实现。
要提供自定义的语法突出显示,您必须子类QSyntaxHighlighter
和重新实现highlightBlock
函数,并定义自己的突出显示规则。
使用QVector
存储高亮显示规则:规则由QRegularExpression模式和QTextCharFormat实例组成,然后配置好的highlightingRules
,用于当文本块更新时自动调用highlightBlock
函数刷新高亮显示文本。
struct HighlightingRule{ QRegularExpression pattern; QTextCharFormat format;};QVector<HighlightingRule> highlightingRules;
void Highlighter::highlightBlock(const QString &text){ foreach (const HighlightingRule &rule, highlightingRules) { QRegularExpressionMatchIterator matchIterator = rule.pattern.globalMatch(text);while (matchIterator.hasNext()) { QRegularExpressionMatch match = matchIterator.next();setFormat(match.capturedStart(), match.capturedLength(), rule.format);}}...}
高亮显示文本格式有:
QTextCharFormat keywordFormat; // 关键词QTextCharFormat classFormat; // 类名QTextCharFormat singleLineCommentFormat; // 单行注释QTextCharFormat multiLineCommentFormat; // 多行注释QTextCharFormat quotationFormat; // 头文件引用QTextCharFormat functionFormat; // 函数
以添加类名高亮语法为例:
HighlightingRule rule;
classFormat.setFontWeight(QFont::Bold);classFormat.setForeground(Qt::darkMagenta);rule.pattern = QRegularExpression("\\bQ[A-Za-z]+\\b"); // 配置"类名"正则模式rule.format = classFormat; // 配置"类名"的文本格式highlightingRules.append(rule); // 添加到高亮显示规则容器,用于文本刷新
关于更多
- 在QtCreator软件可以找到:
- 或在以下Qt安装目录找到
C:\Qt\{你的Qt版本}\Examples\{你的Qt版本}\widgets\richtext\syntaxhighlighter
相关链接
https://doc.qt.io/qt-5/qtwidgets-richtext-syntaxhighlighter-example.html
Qt君公众号回复『Qt示例』获取更多内容。
语法高亮_Qt官方示例语法高亮器相关推荐
- qt获取combobox的值_Qt官方示例嵌套甜甜圈
❝ 本示例演示如何使用QPieSeries API创建嵌套的甜甜圈图. ❞ 创建嵌套甜甜圈图 先创建一个QChartView实例并启用抗锯齿.然后从QChartView实例获得一个QChart对象 ...
- qt label显示文字_Qt官方示例共享内存
这个例子展示了如何使用QSharedMemory类(共享内存)进行进程间通信. 构建示例,请运行make.要运行该示例,请运行两个实例.main()函数创建一个应用程序和我们示例的Dialog类的 ...
- qt 设置按钮大小_Qt官方示例双向按钮
"双向按钮"示例演示了如何使用状态机框架实现简单的状态机,该状态机在单击按钮时切换当前状态. 应用程序的main()函数从构造应用程序对象,按钮和状态机开始. int main ...
- c++ qt获取电脑的内存_Qt官方示例-TCP客户端/服务器示例
该示例演示了在本地主机上的TCP客户端和服务器是如何通讯的. 客户端 绑定信号槽. connect(&tcpClient, &QAbstractSocket::connected, t ...
- c++ qt获取电脑的内存_Qt官方示例信号量
❝ 演示Qt多线程的信号量操作编程. ❞ 生产者将数据写入缓冲区,直到到达缓冲区末尾为止,然后从头开始重新开始,覆盖现有数据.使用者线程读取生成的数据,并将其写入标准错误. 信号量比互斥量可以 ...
- qt connect函数_Qt官方示例广播发送器
❝ 本示例使用Qt Network API演示如何通过本地网络向多个客户端广播消息. ❞ 总结了下该例子的使用方法: 创建UDP套接字. udpSocket = new QUdpSocket(th ...
- logo qt添加_Qt官方示例-窗口标志
窗口标志示例展示了如何使用Qt中可用的窗口标志类型来指定窗口系统属性. 根据示例整理出来的各窗口标志作用一览表如下: 只能设置一个的窗口标志对照表 窗口标志 描述 Qt::QWidget 窗口的默认属 ...
- qt label显示图片_Qt官方示例-QML Axes
QML轴线图示例,折线图,散点图. 使用相同轴坐标的折线图和散点图. 代码: ChartView {title: "Two Series, Common Axes"anchors. ...
- 装饰器的定义、语法糖用法及示例代码
1. 装饰器的定义 就是给已有函数增加额外功能的函数,它本质上就是一个闭包函数. 装饰器的功能特点: 不修改已有函数的源代码 不修改已有函数的调用方式 给已有函数增加额外的功能 2. 装饰器的示例代码 ...
- python装饰器语法糖_最全python装饰器的各种写法
装饰器是最容易在我们项目编写上出现的内容,结实的掌握这部分内容,对我们的代码是否能顺利编写时非常重要的,下面就关于python装饰器问题,给大家最详细介绍. 装饰器的示例代码# 定义装饰器 def d ...
最新文章
- Voat —— 基于 ASP.NET 的 Reddit 高仿系统
- .CS文件编译生成.DLL文件 .EXE文件(C#网络搜集)(转)
- c语言中return语句例子,C语言 return 语句-嗨客网
- 315. Count of Smaller Numbers After Self 计算右侧小于当前元素的个数
- python excel模板 插件_python脚本——自动推送txt,EXCEL等文件模板
- 错误C4996:'std :: _Copy_impl'
- JavaScript 操作 HTML DOM (文档对象模型) 相关知识点
- Python logging日志系统
- 在Linux操作系统下修改IP、DNS和路由配置
- Python实现四个经典小游戏合集
- svn版本管理软件——svn分支管理
- 全国高级计算机职称考试试题及答案,最新全国计算机职称考试试题及答案.doc...
- javascript飞机大战-----007爆炸效果
- Selenium元素定位神器工具谷歌浏览器插件-SelectorsHub介绍、安装和使用
- 什么是思维模型?什么是原则?
- 一点资讯app signature
- mumu模拟器屏蔽root,mumu模拟器下载
- 英文歌曲:Yesterday Once More(昨日重现)
- 常用的RAID模式及特点
- python外星人颜色答案_Python-外星人
热门文章
- 算法笔记_什么是算法/算法分析/减而知之/分而治之/动态规划
- GMapping源码分析之随手笔记
- opencv3.4.2调用训练好的Openpose模型
- python训练Faster RCNNC++调用训练好的模型进行物体检测-基于opencv3.4.3(超详细)
- 【docker】docker持续集成CI/持续部署CD
- 15-2 mysql的数据类型
- CentOS7+rsync+sersync实现数据实时同步
- 8.Postman中发送请求被拦截(证书问题)
- 基于Kubernetes集群部署skyDNS服务
- 弹出层之3:JQuery.tipswindow