当前位置: 首页 > news >正文

Qt 使用QScintilla 编辑lua 脚本

需求:

利用QScintilla 编辑lua 脚本

步骤:

1,下载 QScintilla Riverbank Computing | Download

2,   打开 src/qscintilla.pro 文件 编译出 dll库

3,工程中引入这个库

注意debug 模式 必须加载debug 版本编译的库,不然回提示 ”QWidget: Must construct a QApplication before a QWidget“

4,使用

#include <QApplication>#include <QMainWindow>
#include <QVBoxLayout>
#include <qsciscintilla.h>
#include <qscilexerlua.h>
#include <qsciapis.h>int main(int argc, char *argv[])
{QApplication app(argc, argv);// 创建窗口和布局QMainWindow  window;// 创建编辑器控件QsciScintilla editor(&window);window.setCentralWidget(&editor);editor.setMarginWidth(0, 40);editor.setIndentationGuides(true);editor.setTabWidth(4);editor.setUtf8(true);QsciLexerLua *textLexer = new QsciLexerLua;editor.setLexer(textLexer);//设置编码为UTF-8QsciAPIs apis(textLexer);apis.add(QString("and"));apis.add(QString("break"));apis.add(QString("do"));apis.add(QString("else"));apis.add(QString("elseif"));apis.add(QString("end"));apis.add(QString("false"));apis.add(QString("for"));apis.add(QString("function"));apis.add(QString("if"));apis.add(QString("in"));apis.add(QString("local"));apis.add(QString("nil"));apis.add(QString("not"));apis.add(QString("or"));apis.add(QString("repeat"));apis.add(QString("return"));apis.add(QString("then"));apis.add(QString("true"));apis.add(QString("until"));apis.add(QString("while"));apis.prepare();editor.setAutoCompletionSource(QsciScintilla::AcsAll);editor.setAutoCompletionCaseSensitivity(true);editor.setAutoCompletionThreshold(1);editor.SendScintilla(QsciScintilla::SCI_SETCODEPAGE,QsciScintilla::SC_CP_UTF8);editor.setCaretLineVisible(true);editor.setFolding(QsciScintilla::BoxedFoldStyle);// 显示窗口window.show();return app.exec();
}

5,效果

http://www.lryc.cn/news/301637.html

相关文章:

  • 2022长安杯复现
  • Netty Review - NioEventLoopGroup源码解析
  • 团队配置管理规范浅见
  • 「算法」二分查找1:理论细节
  • 【网络安全】什么样的人适合学?该怎么学?
  • 从零开始学习数据结构—【链表】—【探索环形链的设计之美】
  • AJAX——HTTP协议
  • java面试微服务篇
  • JS进阶——垃圾回收机制以及算法
  • 【快速解决】python项目打包成exe文件——vscode软件
  • 数据结构——lesson3单链表介绍及实现
  • 中科大计网学习记录笔记(八):FTP | EMail
  • QPaint绘制自定义坐标轴组件00
  • MATLAB|基于改进二进制粒子群算法的含需求响应机组组合问题研究(含文献和源码)
  • JDBC核心技术
  • 【天幕系列 02】开源力量:揭示开源软件如何成为技术演进与社会发展的引擎
  • “挖矿”系列:细说Python、conda 和 pip 之间的关系
  • 【自然语言处理】实验3,文本情感分析
  • 2.12日学习打卡----初学RocketMQ(三)
  • <网络安全>《35 网络攻防专业课<第一课 - 网络攻防准备>》
  • 【实战】一、Jest 前端自动化测试框架基础入门(一) —— 前端要学的测试课 从Jest入门到TDD BDD双实战(一)
  • 蓝桥杯Java组备赛(二)
  • 人力资源智能化管理项目(day10:首页开发以及上线部署)
  • Conda管理Python不同版本教程
  • free pascal:fpwebview 组件通过 JSBridge 调用本机TTS
  • 数据结构——单链表专题
  • Linux:开源世界的王者
  • ⭐北邮复试刷题103. 二叉树的锯齿形层序遍历 (力扣每日一题)
  • 文件上传漏洞--Upload-labs--Pass07--点绕过
  • MySQL高级特性篇(1)-JSON数据类型的应用