QScintilla学习大全
我的系列博客
关于如何安装和入门,看我这些博客,会很有收获的 :
QScintilla如何安装和入门(初学者)_标biao的博客-CSDN博客_qscintilla
QScintilla学习和使用杂记_我是标同学的博客-CSDN博客_qsciscintilla
QScintilla滚动条自适应的解决方法_我是标同学的博客-CSDN博客_qsciscintilla
QScintilla的各种颜色字体等设置_我是标同学的博客-CSDN博客
QsciScintilla等编辑器实现不同区域鼠标右键处理方式不同的方法_我是标同学的博客-CSDN博客
QScintilla的信号汇总和解释_我是标同学的博客-CSDN博客
简介(类的继承关系)
QScintilla官网:QScintilla
QScintilla来源于Scintilla(Scintilla是纯c++写的,所以qt还不能直接使用,网站 Scintilla and SciTE)。所以有了QScintilla
Qt这边类的继承关系:其实qt自己的QPlainTextEdit也是继承于QAbstractScrollArea,所以QScintilla就是一个类似的控件。

Scintilla和Qt的整个继承关系 如下图所示:

1. 直接查看头文件学习
编辑器的功能实现,主要用到两个类 QScintillaBase,QScintilla,关于它们有哪些对外的函数,我们只需要查看它们对应的头文件即可。
牵扯到的qsci头文件有如下几个:
#include//没啥东西#include //主要是用于绑定一个按键和一个命令,命令表示一个执行动作,比如当前行上移,等。可以用来实现快捷键的操作功能。该头文件是qsci内部用的,不对用户开放。#include //用于编辑器加载的一个文档的,可以多个编辑器同时加载要给文档,实现多视图同时编辑。该头文件是qsci内部用的,不对用户开放。#include //它实现了标准的Scintilla API(sci原生的那些函数),该API由许多消息组成,每个消息最多带两个参数。而且里面提供了大量的信号函数(值得一看)。但是该文件的调用接口还是比较底层,通过给QSci发消息的方式使用,还是太难搞了,不符合qt库的风格。关于这个sci的这些原生库使用方式,可以查看官网的 Scintilla Documentation 有非常丰富细致的讲解,Qsci因为是对它进行的封装,所以接口都是一样的,这个文档讲解Qsci同样适用。如果是实践例子,直接查看notepade++这个有名的编辑器 https://notepad-plus-plus.org/
#include//就是对qsciscintillabase的继承,也就是进一步封装和丰富了,具有常用的编辑器需要的功能,函数调用方式了,符合qt库风格。里面只封装了一些常用的信号函数。里面的函数太多了,有不懂的,直接在该头文件里面看,就是最快的学习方式,里面的注释比较好,命名也都见名知意。但是这些头文件的注释是格式化的,是为了生成对应文档用的,可读性还可进一步增强。下面说的pyqt官网的这个网站就是将这些注释进行了文档化,更加的容易读了。 QScintilla: QsciScintilla Class Reference
2. QSci官网教程学习
- 此外,实践Qsci,官网指出,QSci的学习,最初是Matic Kukovec写了一个Qsci的pdf学习文档,有132页,特别详细,去这儿下载吧 GitHub - matkuki/qscintilla_docs: Documentation for QScintilla editing component of the PyQt framework
他还自己做了一个编辑器的例子(pyqt做的) Ex.Co. - Home 这个虽然是pyqt写的,但是函数接口都是一样的,我们用c++也能照猫画虎的学习使用了。
然后该pdf被另外一个人制作成了一个网站,QScintilla ,更加浅显易懂的讲解这些知识,还配合了大量图片,和教程,更加容易学习了。
那么QSci的真正版权是谁呢,也就是谁开发出来的呢,我们在QSci的头文件的版权说明中可以看到,原来是pyqt的作者,确实太强了 Riverbank Computing | Introduction
- 此外,pyqt官网,也对QScinitilla的使用做了封装,基于它自己做了个IDE(pyqt做的)(不仅是编辑器了),The Eric Python IDE - Download 这个IDE挺庞大的,代码开源的,在它源码工程的QScintilla目录下的Editor.py文件,也是对QScinitilla的各种接口进行调用,也可以照猫画虎参考,但是代码量实在太大了,9500行,有兴趣也可以参考一下。
但是这都不是最主要的,主要是它这个pyqt官网这个地方 QScintilla: QsciScintilla Class Reference
对 QScinitilla相关的所有头文件中的内容进行了文档化,更加的容易查找想要的信息,非常方便,推荐!!!

qt和pyqt的关系可以看我这个博客 Qt和PyQt和PySide之间的关系_标biao的博客-CSDN博客
3. 网上的一些博客教程学习
- 该作者讲得不错,应该是将QSci官网的教程翻译以及实操了(c++版了),非常通俗易懂,值得参考,强烈推荐!!!,但是只写了两篇,期待更新 QScintilla入门指南之基本介绍 - Kohirus - 博客园
- 该作者做了个51单片机的简单IDE(pyqt做的),虽然没有调试功能,但是是系列文章,也很值得参考,通俗易懂 PYQT5:基于QsciScintilla的代码编辑器分析0--前言(提供exe文件、源代码下载)_hwd00001的博客-CSDN博客
代码编辑器: 本代码编辑器实现的目标功能:1.常用的代码编辑功能,提高编辑效率的功能,如语法高亮显示,输入自动补全(基于QsciScintilla),函数列表,函数跳转,包含文件打开。2. 设置编译器路径,编译器参数(SDCC)。3. 生成C51的hex文件后,可以选择串口对目标芯片(STC12、STC15、STC8)下载。4. C51工程采用《code::blocks》的组织方式,用后缀名为.cbp的xml的文件组织,可以直接打开《code::blocks》的工程文件(for MCS51).
- 这个也可以参考一下 Linux下Qt制作代码编辑器 - 灰信网(软件开发博客聚合)
参考博客:
Qt优秀开源项目之十三:QScintilla_草上爬的博客-CSDN博客_qt 开源
QScintilla入门指南之基本介绍 - Kohirus - 博客园
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
