Windows10下QScintilla的安装及简介

一、什么是qsciscintilla

Scintilla是一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码的编辑和调试,包括语法高亮、错误指示、代码完成(code completion)和调用提示(call tips)。能包含标记(marker)的页边(margin)可用于标记断点、折叠和高亮当前行。

而QScintilla是Scintilla在QT上的移植。如果想在Qt上面使用强大的Scintilla控件,就安装QScintilla吧!

二、qsciscintilla的下载和安装

1. 下载并解压

将下载的压缩包解压之后, 得到以下目录结构: 
]目录结构

目录结构含义如下:

目录名 用途
Qt4Qt5 编译文件夹, 生成对应的DLL文件
designer-Qt4Qt5 相关的设计师插件的编译文件夹
example-Qt4Qt5 简单的示例文件夹
doc 使用Doxygen生成的帮助文档
lexers 已实现的各语法分析器

2. 安装

2.1 本地环境

  • QScintilla版本为: 2.10.7
  • 编译器为 mingw32-make (安装路径为:Qt安装目录\Tools\mingw482_32\bin)
  • Qt版本为 QT5.7 MinGW

2.2 安装QScintilla

首先,你可以到这个网址进行下载,然后解压后,可以看到里面有很多文件,其中安装的目录和源码在Qt4Qt5文件夹下,在这个文件夹里面使用qmake运行里面的.pro文件,就可以生成makefile文件,然后使用make或者nmake工具运行makefile文件即可。就拿我的Qt举例子,我的Qt安装的是Qt5.7 MinGW版本,因此首先在系统环境变量PATH添加你的Qt的qmake路径和mingw32-make路径,比如我的电脑上添加的这两个路径分别是G:\Qt\Qt5.7.0\5.7\mingw53_32\bin和G:\Qt\Qt5.7.0\Tools\mingw530_32\bin,然后在刚才的Qt4Qt5文件夹下面,打开cmd到这个文件夹,分别执行如下语句:

qmake qscintilla.pro     #使用qmake工具生成makefile文件
mingw32-make             #使用Qt5.7 MinGW版本自带的make工具按照makefile里面的定义的方式编译qscintilla的源文件
mingw32-make install     #将编译生成的库整合到自己的Qt源文件中

编译步骤如下: 
1. cd到Qt4Qt5目录下. 
2. qmake application.pro, 生成对应Makefile. 
3. mingw32-make.exe. 当设置了mingw32的环境变量时, 可直接执行make
4. 将生成的qscintilla2_qt5.dllqscintilla2_qt5d.dll, 对应的libXX.a, 复制到Qt5_7_0\5.7\mingw53_32\lib中. 
5. 将Qsci文件夹复制到Qt5_7_0\5.7\mingw53_32\include中.

2.3 安装QtDesigner插件

mingw编译的插件只能在Qt设计师中使用, 无法在QtCreator中使用. (因为QtCreator是MSVC编译完成的)

  • 需先将qscintilla2.dll复制到Qt5_7_0\5.7\mingw53_32\bin中. 防止在Qt设计师中无法加载该插件.
  • 只需要编译Release版本的插件即可.
  • 步骤: 
    1. cd到designer-Qt4Qt5目录下
    2. qmake designer.pro
    3. mingw32-make.exe. 当设置了mingw32的环境变量时, 可直接执行make
    4. mingw32-make install 将生成的qscintillaplugin.dll复制到Qt5_7_0\5.7\mingw53_32\plugins\designer中.
    5. 打开Qt设计师, 即可看到该组件.

3. 应用到工程

3.1 在pro文件中修改

因为已经将该组件安装到了Qt的安装目录中, 所以只需表明要使用该插件, 并设置需加载的动态链接库. 而无需指定动态链接库的路径.

CONFIG += qscintilla2
macx {
    QMAKE_POST_LINK = install_name_tool -change libqscintilla2_qt$${QT_MAJOR_VERSION}.13.dylib $$[QT_INSTALL_LIBS]/libqscintilla2_qt$${QT_MAJOR_VERSION}.13.dylib $(TARGET)
} 

3.2 包含头文件

#include <QSci/具体头文件>

改进

以上qt版本和qtcreator版本都只编译了release 版本,没有bebug版本。执行debug时会报错

Starting E:\TEST-JOKEY\qt\build-SerialTool-Desktop_Qt_5_7_0_MinGW_32bit-Debug\debug\SerialTool.exe...
QWidget: Must construct a QApplication before a QWidget
E:\TEST-JOKEY\qt\build-SerialTool-Desktop_Qt_5_7_0_MinGW_32bit-Debug\debug\SerialTool.exe exited with code 3

修改步骤如下

2.2 安装QScintilla

需编译生成Debug和Release版本的DLL, 并将DLL, libXX.a, QSci头文件夹 移到Qt安装路径下的对应文件夹中.

可使用QtCreator打开.pro文件, 然后分别选择Debug, Release进行编译.

qmake qscintilla.pro
mingw32-make -f Makefile.Debug
mingw32-make -f Makefile.Debug install

经过上面的修改之后, 修改CONFIG += release 或 debug. 即可编译生成DebugRelease版本.

编译步骤如下: 
1. cd到Qt4Qt5目录下. 
2. qmake application.pro, 生成对应Makefile. 
3. mingw32-make.exe. 当设置了mingw32的环境变量时, 可直接执行make
4. mingw32-make install将生成的qscintilla2_qt5.dllqscintilla2_qt5d.dll, 对应的libXX.a, 复制到Qt5_7_0\5.7\mingw53_32\lib中. 
5. 将Qsci文件夹复制到Qt5_7_0\5.7\mingw53_32\include中.

阅读更多

更多精彩内容