qt编译实现简单的文本编译器有粘贴复制_Qt中文本编辑器实现语法高亮功能(Qscitinlla)...

Scintilla是一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码的编辑和调试,包括语法高亮、错误指示、代码完成(code completion)和调用提示(call tips)。能包含标记(marker)的页边(margin)可用于标记断点、折叠和高亮当前行。而QScintilla是Scintilla在QT上的移植。使用该库可以更为方便的开发Qt程序。

下面以windows开发为例:

解压,在Qt4Qt5目录,用QtCreator打开qscintilla.pro,构建项目。

生成qscintilla2_qt5.lib或.a文件(本例子使用Qt5.7.1  MSVC2013)

1、创建QWidget工程

在.pro文件添加头文件以及动态链接库的引用:

INCLUDEPATH += C:/Users/pan/Desktop/QScintilla_gpl-2.10.1/Qt4Qt5

LIBS += -LC:/Users/pan/Desktop/QScintilla_gpl-2.10.1/build-qscintilla-Desktop_Qt_5_7_1_MSVC2013_64bit-Debug/debug/ -lqscintilla2_qt5d

或者不用添加INCLUDEPATH,直接将Qt4Qt5目录中的Qsci目录拷贝到工程中。

2、添加用到的头文件

//QsciScintilla作为QWidget的控件,需要添加该控件的头文件

#include

//以python语法作为例子,该语法分析器的头文件

#include

//设置代码提示功能,依靠QsciAPIs类实现

#include

3、设置具体功能代码

Widget::Widget(QWidget *parent)

: QWidget(parent)

{

QsciScintilla *editor=new QsciScintilla(this);

//设置语法

QsciLexerPython *textLexer = new QsciLexerPython;//创建一个词法分析器

editor->setLexer(textLexer);//给QsciScintilla设置词法分析器

//行号提示

editor->setMarginType(0,QsciScintilla::NumberMargin);//设置编号为0的页边显示行号。

editor->setMarginLineNumbers(0,true);//对该页边启用行号

editor->setMarginWidth(0,15);//设置页边宽度

//代码提示

QsciAPIs *apis = new QsciAPIs(textLexer);

apis->add(QString("import"));

apis->prepare();

editor->setAutoComplet

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值