大家好,欢迎来到IT知识分享网。
而QScintilla是Scintilla在QT上的移植,使用该库可以更为方便的开发Qt程序
一.下载
QScintilla的官网:https://qscintilla.com/
下载地址:Riverbank Computing | Download
注意:有多个版本,而2.12及其以后的版本,不再支持Qt4和Qt5了,所以源码中没有QT4QT5这个目录了。这里我下载的是2.11.6这个版本。这里我使用的QT版本是 Qt 5.12.2。下载完成后解压,其目录结构如下:
目录名 | 用途 |
---|---|
Qt4Qt5 | 编译文件夹,生成对应的DLL文件 |
designer-Qt4Qt5 | 相关的设计师插件的编译文件夹 |
example-Qt4Qt5 | 简单的示例文件夹 |
doc | 使用Doxygen生成的帮助文档 |
lexers | 已实现的各语法分析器 |
… | … |
本文只演示如何编译生成dll,关于Qt Designer插件的编译,详见:QScintilla的安装及简介
二.编译和测试
QT += core gui widgets CONFIG += qscintilla2 HEADERS = mainwindow.h SOURCES = main.cpp mainwindow.cpp RESOURCES = application.qrc INCLUDEPATH += ../Qt4Qt5 LIBS += qscintilla2_qt5d.lib
因为application工程中用到了Qt4Qt5/Qsci中的头文件,因此需要将Qt4Qt5目录包含到INCLUDEPATH中
然后将之前编译好的qscintilla2_qt5d.lib拷贝到example-Qt4Qt5中
这样就能正常编译application工程了,要运行的话,还得将qscintilla2_qt5d.dll拷贝到application.exe所在目录中
运行时,如下所示:
三.类的层次结构
图片来自:https://qscintilla.com/#editor
1.最基本的类就是QSciScintillaBase,它是⽂本编辑器的基类,该类偏底层,通常不直接使用。QScintilla库提供了⼀个上层⼦类QSciScintlla ,它就是⽂本编辑器类,其内有许多类似于Qt的API 。如果该类缺少所需的某些⾮常具体的功能,此时可以继承其⽗类QSciScintillaBase。
2.语法高亮显示的对象称之为词法分析器。创建并配置这样的词法分析器对象后,只需要将其应用到⽂本编辑器(QSciScintilla对象)中即可。关于词法分析器的实现,QScintilla提供了QSciLexer类,该类是⼀个抽象类,因此在创建对象之前,需要对其进行子类化。
3.⼀个好的⽂本编辑器提供的不仅仅是需要语法的高亮显示,还需要有函数参数提示和自动补全等功能。这些功能都存在于QSciAPI类中。只需要从该类创建⼀个实例,并将其应用到QSciLexer对象中即可。而其父类是一个抽象类,类名为QSciAbstractAPIs。
更多内容可参考官方文档
原文链接:https://blog.csdn.net/caoshangpa/article/details/
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/153033.html