• 613阅读
  • 10回复

QT 简单文本编辑器-语法高亮,代码补全,高亮当前行,行号显示 [复制链接]

上一主题 下一主题
离线wllw7176
 


Based on Qt 5.7.0 (MSVC 2013, 32 bit) 编译器:Mingw

简单的文本编辑器,主要实现了如下功能:
1.行号显示及高亮当前行(集成CodeEditorExmaple qt自带例子)
2.文本动态补全
3.关键字高亮

   文本自动补全与语法高亮功能可以指定语法高亮文件,这个在资源文件添加对应的语法高亮文件就行了,目前实现了简单的c语言的语法高亮及自动补全。

语法高亮文件格式如下:
$$keyword     r      g     b    //注释行 $$开头
auto         212    12    204   //关键字 r,g,b关键字原色值
附件: simple_editor.rar (639 K) 下载次数:49
离线liuchangyin

只看该作者 1楼 发表于: 07-29
离线dansir

只看该作者 2楼 发表于: 07-29
离线yangyu52009

只看该作者 3楼 发表于: 07-29
离线newbe

只看该作者 4楼 发表于: 07-30
还不错,有两个不怎么好的地方反馈一下:
1. int是高亮关键字,但是输入printf,其中'int'三个字符也是会高亮显示,不太好;
2.按tab键会跳很大一格,按空格又跳的比较小.
离线wllw7176

只看该作者 5楼 发表于: 07-31
1.tab字符宽度可以通过setTabStopWidth(int pixWidth)设置
1 tab = 4英文字符 setTab

2. 关键字错误高亮
关键字高亮基于正则匹配,例子中正则匹配规则就简单匹配整个关键字,没有处理特殊情况
你可以根据需要改变readSynatxHighter()函数中matchString 来改变匹配规则达到自己要求
离线wllw7176

只看该作者 6楼 发表于: 07-31
回 newbe 的帖子
newbe:还不错,有两个不怎么好的地方反馈一下:
1. int是高亮关键字,但是输入printf,其中'int'三个字符也是会高亮显示,不太好;
2.按tab键会跳很大一格,按空格又跳的比较小. (2018-07-30 17:04) 

1.tab字符宽度可以通过setTabStopWidth(int pixWidth)设置
1 tab = 4英文字符 setTab

2. 关键字错误高亮
关键字高亮基于正则匹配,例子中正则匹配规则就简单匹配整个关键字,没有处理特殊情况
你可以根据需要改变readSynatxHighter()函数中matchString 来改变匹配规则达到自己要求
2条评分好评度+1金钱+5
newbe 好评度 +1 有道理! 08-04
newbe 金钱 +5 有道理! 08-04
离线九重水

只看该作者 7楼 发表于: 07-31
初学者?标识符和关键字的识别要以最长的那个为准。
不然很容识别错误,例如将 ‘ifelse’ 标识符识别成‘if’ 和 ‘else’……
好好加油。我也是初学者。
离线wllw7176

只看该作者 8楼 发表于: 07-31
回 九重水 的帖子
九重水:初学者?标识符和关键字的识别要以最长的那个为准。
不然很容识别错误,例如将 ‘ifelse’ 标识符识别成‘if’ 和 ‘else’……[表情]
好好加油。我也是初学者。[表情]  (2018-07-31 11:28) 

嗯,刚学qt不久,在学习C++ GUI Qt4这个经典
离线newbe

只看该作者 9楼 发表于: 08-04
有道理!
离线qing11

只看该作者 10楼 发表于: 08-12
  
哈喽,大家好
快速回复
限100 字节
 
上一个 下一个