RKERADD,linenr-1);
效果如图
下面设置下划线标记
ui->textEdit->SendScintilla(QsciScintilla::SCI_STYLESETUNDERLINE,linenr,true);
ui->textEdit->SendScintilla(QsciScintilla::SCI_MARKERDEFINE,0,QsciScintilla::SC_MARK_UNDERLINE)
效果如下
删除所有标记
textEdit->SendScintilla(QsciScintilla::SCI_MARKERDELETEALL);
跳转标记
//跳转到下一个标记
void QsciEditor::gotoNext()//函数写完还未测试,大概是这个作用,可自行测试
{
int line,col;
ui->textEdit->getCursorPosition(&line,&col);
ui->textEdit->SendScintilla(QsciScintilla::SCI_MARKERNEXT,line);
}
//跳转到上一个标记
void QsciEditor::gotoPre()
{
int line,col;
ui->textEdit->getCursorPosition(&line,&col);
ui->textEdit->SendScintilla(QsciScintilla::SCI_MARKERPREVIOUS,line);
}
跳转光标到行line,列index
void QsciEditor::setCursorPosition_p(int line,int index)
{
ui->textEdit->setCursorPosition(line-1,index);
ui->textEdit->setCaretLineBackgroundColor(Qt::lightGray);
ui->textEdit->SendScintilla(QsciScintilla::SCI_SETFIRSTVISIBLELINE,line);
}
设置词法分析器
QsciLexer *textLexer;//创建一个词法分析器
//常用以下几种,注意添加对应的头文件
textLexer = new QsciLexerCPP;
textLexer = new QsciLexerPython;
textLexer = new QsciLexerJava;
textLexer = new QsciLexerHTML;
textLexer = new QsciLexerCSharp;
textLexer = new QsciLexerCSS;
textLexer = new QsciLexerjava script;
一些编辑操作函数,看函数名就知道是干嘛的了,手动滑稽
ui->textEdit->undo();
ui->textEdit->redo();
ui->textEdit->copy();
ui->textEdit->cut();
ui->textEdit->paste();
ui->textEdit->findFirst(expr,true,false,true,true);
ui->textEdit->findNext();
ui->textEdit->replace(replaceStr);
常用的信号
//编辑器内容被编辑
textChanged()
//是否可复制,大概是这样copyAvailable(bool)
就说这些,剩下的需要去源代码里面找了