码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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 - 博客园

  • 相关阅读:
    leetCode-栈类型详解
    关于 C/C++ 中的 switch 语句,您可能不知道
    批量输出生成宗地图斑界址点成果表,支持自动分页,纯FME实现
    LeetCode刷题复盘笔记——37. 解数独(一文搞懂回溯解决经典的解数独问题)
    秋招腾讯!配套初级程序员到Java高级架构师学习路线+配套学习资源
    漫谈测试成长之探索——测试汇报
    Word中设置粘贴为纯文本的自定义快捷键
    js 实现删除数组指定元素
    第十七章 管理组件库的pull request
    00后如何组织双十一大促看这一篇就够了! | 京东云技术团队
  • 原文地址:https://blog.csdn.net/kangkanglhb88008/article/details/126798996
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号