QsciScintilla 如何添加注释

 时间:2026-02-14 17:53:11

1、//获取必要的参数

// 空白行的处理

bool commentEmptyLines = true; 

//获取选择注释的开始位置

int selectionStart = ui->textEdit->SendScintilla(QsciScintillaBase::SCI_GETSELECTIONSTART);  

//获取选择注释的结束位置

int selectionEnd = ui->textEdit->SendScintilla(QsciScintillaBase::SCI_GETSELECTIONEND);

//获取选择注释的当前位置

int caretPosition = ui->textEdit->SendScintilla(QsciScintillaBase::SCI_GETCURRENTPOS);  

QsciScintilla 如何添加注释

2、//当前的光标位置 是否在选择内

bool move_caret = caretPosition < selectionEnd; 

3、//获取要注释的行号

 int selStartLine = ui->textEdit->SendScintilla(QsciScintillaBase::SCI_LINEFROMPOSITION,selectionStart);

 int selEndLine = ui->textEdit->SendScintilla(QsciScintillaBase::SCI_LINEFROMPOSITION,selectionEnd);

//计算 注释行数

int lines = selEndLine - selStartLine;

QsciScintilla 如何添加注释

4、//处理结束行

if((lines  > 0)&& (selectionEnd == ui->textEdit->SendScintilla(QsciScintillaBase::SCI_POSITIONFROMLINE,selEndLine)))       

selEndLine-- ;

5、//记录操作,方便实现 redo undo功能

ui->textEdit->SendScintilla(QsciScintillaBase::SCI_BEGINUNDOACTION);

QsciScintilla 如何添加注释

6、// 注释每一行

//遍历行

  for(int i = selStartLine; i <= selEndLine ; ++i)  

 {      

//获取注释的行信息

 int lineStart  = ui->textEdit->SendScintilla(QsciScintillaBase::SCI_POSITIONFROMLINE,i);       

int lineIndent = ui->textEdit->SendScintilla(QsciScintillaBase::SCI_GETLINEINDENTPOSITION,i);     

  int lineEnd    = ui->textEdit->SendScintilla(QsciScintillaBase::SCI_GETLINEENDPOSITION,i);

  if(lineIndent == lineEnd && !commentEmptyLines)         

        continue;      

 // 要注释的行前面的空格处理     

lineIndent = lineStart;      

 int lineBufferSize = lineEnd - lineIndent +1;       

char *buf =new char[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 如何添加注释

  • 直线行驶怎么操作
  • qq空间相册封面拼图【任意diy】
  • 怎么查看元素css样式中element.style所在位置
  • 帆船量词怎么形容
  • 狼牙山媳妇岭怎么走
  • 热门搜索
    黑龙江旅游职业学院 杨梅坑旅游攻略 湖南衡山旅游 安徽旅游景点排行 中国旅游指南 鹤岗旅游景点大全 安徽宣城旅游 长沙旅游地图 楚雄旅游景点大全 过年去哪里旅游最好