Scintilla是一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码的编辑和调试,包括语法高亮、错误指示、代码完成(code completion)和调用提示(call tips)。能包含标记(marker)的页边(margin)可用于标记断点、折叠和高亮当前行。
而QScintilla是Scintilla在QT上的移植。如果想在Qt上面使用强大的Scintilla控件,就安装QScintilla吧!
将下载的压缩包解压之后, 得到以下目录结构:
目录结构含义如下:
目录名 | 用途 |
---|---|
Qt4Qt5 | 编译文件夹, 生成对应的DLL文件 |
designer-Qt4Qt5 | 相关的设计师插件的编译文件夹 |
example-Qt4Qt5 | 简单的示例文件夹 |
doc | 使用Doxygen生成的帮助文档 |
lexers | 已实现的各语法分析器 |
… | … |
2.10.7
mingw32-make
(安装路径为:Qt安装目录\Tools\mingw482_32\bin
)QT5.7 MinGW
首先,你可以到这个网址进行下载,然后解压后,可以看到里面有很多文件,其中安装的目录和源码在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.dll和qscintilla2_qt5d.dll, 对应的libXX.a, 复制到Qt5_7_0\5.7\mingw53_32\lib中.
5. 将Qsci文件夹复制到Qt5_7_0\5.7\mingw53_32\include中.
mingw编译的插件只能在Qt设计师中使用, 无法在QtCreator中使用. (因为QtCreator是MSVC编译完成的)
qmake designer.pro
mingw32-make.exe
. 当设置了mingw32的环境变量时, 可直接执行make
mingw32-make install
将生成的qscintillaplugin.dll复制到Qt5_7_0\5.7\mingw53_32\plugins\designer中.因为已经将该组件安装到了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
修改步骤如下
需编译生成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
. 即可编译生成Debug, Release版本.
编译步骤如下:
1. cd到Qt4Qt5目录下.
2. qmake application.pro
, 生成对应Makefile.
3. mingw32-make.exe
. 当设置了mingw32的环境变量时, 可直接执行make
.
4. mingw32-make install
将生成的qscintilla2_qt5.dll和qscintilla2_qt5d.dll, 对应的libXX.a, 复制到Qt5_7_0\5.7\mingw53_32\lib中.
5. 将Qsci文件夹复制到Qt5_7_0\5.7\mingw53_32\include中.