养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

QsciScintilla 如何添加注释

时间:2024-10-01 03:36:28

、Scintilla是一个免费、跨平台、支持语法高亮的编辑控件。它完整支持源代码的编辑和调试,包括语法高亮、错误指示、代码完成(code completion)和调用提示(calltips)。能包含标记(marker)的页边(margin)可用于标记断点、折叠和高亮当前行。QScintilla是Scintilla在QT上的移植。如果想在Qt上面使用强大的Scintilla控件。本文介绍一下如何用QsciScintilla给代码添加注释

工具/原料

QsciScintilla

QT5.6

方法/步骤

1、//获取必要的参数//空白行的处理boolcommentEmptyLines=true;漆虱忧甘//获取选择注释的开始位置intselectionStart=ui->textEdi墉掠载牿t->SendScintilla(QsciScintillaBase::SCI_GETSELECTIONSTART);//获取选择注释的结束位置intselectionEnd=ui->textEdit->SendScintilla(QsciScintillaBase::SCI_GETSELECTIONEND);//获取选择注释的当前位置intcaretPosition=ui->textEdit->SendScintilla(QsciScintillaBase::SCI_GETCURRENTPOS);

QsciScintilla 如何添加注释

2、//当前的光标位置是否在选择内boolmove_caret=caretPosition<selectionEnd;

3、//获取要注释的行号intselStartLine=ui->textEdit->挢旗扦渌;SendScintil造婷用痃la(QsciScintillaBase::SCI_LINEFROMPOSITION,selectionStart);intselEndLine=ui->textEdit->SendScintilla(QsciScintillaBase::SCI_LINEFROMPOSITION,selectionEnd);//计算注释行数intlines=selEndLine-selStartLine;

QsciScintilla 如何添加注释

4、//处理结束行if((lines>0)&&(selectionEnd==ui->textEdit->SendScintilla(QsciScintillaBase::SCI_POSITIONFROMLINE,selEndLine)))selEndLine--;

5、//记录操作,方便实现redoundo功能ui->textEdit->SendScintilla(QsciScintillaBase::SCI_BEGINUNDOACTION);

QsciScintilla 如何添加注释

6、//注释每一行//遍历行for(inti=selStartLine;i<=衡痕贤伎selEndLine;++i){惺绅寨瞀//获取注释的行信息intlineStart=ui->textEdit->SendScintilla(QsciScintillaBase::SCI_POSITIONFROMLINE,i);intlineIndent=ui->textEdit->SendScintilla(QsciScintillaBase::SCI_GETLINEINDENTPOSITION,i);intlineEnd=ui->textEdit->SendScintilla(QsciScintillaBase::SCI_GETLINEENDPOSITION,i);if(lineIndent==lineEnd&&!commentEmptyLines)continue;//要注释的行前面的空格处理lineIndent=lineStart;intlineBufferSize=lineEnd-lineIndent+1;char*buf=newchar[lineBufferSize];//获取注释范围ui->textEdit->SendScintilla(QsciScintillaBase::SCI_GETTEXTRANGE,lineIndent,lineEnd,buf);//添加注释“//”ui->textEdit->SendScintilla(QsciScintillaBase::SCI_INSERTTEXT,lineIndent,"//");}

QsciScintilla 如何添加注释

7、//完成记录ui->textEdit->SendScintilla(QsciScintillaBase::SCI_ENDUNDOACTION);

QsciScintilla 如何添加注释

8、完整程序

QsciScintilla 如何添加注释

© 一点知识