珠海移动网站建设公司小程序搭建公司
2026/2/13 11:30:19 网站建设 项目流程
珠海移动网站建设公司,小程序搭建公司,做dhl底单的网站是 什么,网站设计多少钱一个基于Qt的组件#xff0c;Qscintilla的代码编辑器。 可有偿提供技术帮助#xff0c;帮你开发和移植。 支持5种配色方案 本代码自定义的代码编辑器#xff0c;可应用与任何语言、语法对以下源代码的更新进行说明 [功能] 1.支持自定义快捷键 2.支持自定义皮肤 3.代码高亮#…基于Qt的组件Qscintilla的代码编辑器。 可有偿提供技术帮助帮你开发和移植。 支持5种配色方案 本代码自定义的代码编辑器可应用与任何语言、语法对以下源代码的更新进行说明 [功能] 1.支持自定义快捷键 2.支持自定义皮肤 3.代码高亮支持自定义高亮规则关键词等 4.自动补全支持自动补全列表定义可添加小图标 5.代码行号显示根据行号文字大小自动改变栏目宽度保证完全显示 6.断点调试左侧栏可显示断点和运行小图标 7.书签功能可添加书签 8.支持列选列修改多选多修改 9.支持代码注释可选多段 10.跳转到指定行 11.文本查找替换功能 12.支持放大缩小 13.代码折叠 14.可定义指示器 15.添加行和删除行是左侧栏指示颜色 16.提示信息 tooltip 17.翻译 18.加入代码格式化astyle 19.动态添加函数提示先整点硬核的——自定义语法高亮。咱直接继承QsciLexer搞事情class MyLexer : public QsciLexerCustom { public: explicit MyLexer(QObject *parent0) : QsciLexerCustom(parent) { // 整点骚颜色 setColor(QColor(#FF69B4), 0); // 基佬紫关键词 } const char *language() const override { return MyLang; } QString description(int style) const override { if(style 0) return BadAssKeyword; return QString(); } void styleText(int start, int end) override { // 正则逮住特定模式就上色 QString text editor_-text(start, end); QRegularExpression rx(\\bfuck\\b); //...匹配处理 } };这骚操作能让你把脏话都高亮成基佬紫适合祖安程序员手动狗头。自动补全得玩出花来。注册个API提供器class CompletionProvider(QsciAPIs): def __init__(self, lexer): super().__init__(lexer) self.prepare() # 必须调用 def updateAutoCompletionList(self, context): # 动态添加当前上下文可能的函数 if numpy in context: self.add(np.牛逼函数()) self.sort()配合这个按CtrlSpace弹出补全时还能带小图标。实测发现异步加载大词库时得注意线程安全别整崩了。调试功能最考验细节处理。断点管理这块儿得自己画侧边栏void Editor::paintEvent(QPaintEvent *e) { QsciScintilla::paintEvent(e); QPainter painter(viewport()); // 画断点红圈 foreach (int line, breakpoints) { int y SendScintilla(SCI_POINTYFROMPOSITION, SendScintilla(SCI_GETLINESELPOSITION, line)); painter.drawEllipse(5, y-5, 10, 10); } }这里要处理坐标转换实测在代码折叠时容易翻车得用SCI方法精确获取位置。代码折叠是个精细活。配置参数得讲究editor.setFolding(QsciScintilla.BoxedTreeFoldStyle) # 盒子式折叠 editor.setFoldMarginColors(QColor(#2E3440), QColor(#2E3440)) # 暗黑系边栏 editor.SendScintilla(QsciScintilla.SCI_SETPROPERTY, bfold.compact, b0) # 展开折叠符号注意不同语言得配不同折叠策略像Python这种靠缩进的得用特别处理。文本操作必须够骚。列编辑模式直接调用// 按住Alt拖鼠标进入列选模式 editor.SendScintilla(QsciScintilla.SCI_SETADDITIONALSELECTIONTYPING, true); // 多光标批量修改 QListQPairint, int selections { {pos1, pos2}, {pos3, pos4} }; editor.SendScintilla(QsciScintilla.SCI_SETSELECTIONS, selections.size(), selections.data());这功能实测在处理CSV数据时爽到飞起建议配个快捷键快速切换模式。最后说说代码格式化。集成AStyle得注意参数QProcess formatter; QStringList args { --stylekr, --indentspaces4, --pad-oper, filePath }; formatter.start(astyle, args); // 捕获输出刷新编辑器建议做成异步处理大文件格式化时别卡界面。需要技术支持或定制开发可私信老司机带你飙车这编辑器在十万行级代码项目里实测流畅配上自定义的VIM模式键位妥妥的生产力工具。下回咱们聊聊怎么给它挂上LSP搞语义分析。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询