正在用qscintilla做一个编辑器,想要实现点击函数声明跳到函数定义的功能,但是setCursorPosition没有反应。
而且只在这一个槽里没有反应。
void MainWindow::jumpDefination(int line,int index, Qt::KeyboardModifiers state){
this->textEdit->setCursorPosition(line+1,index);
qDebug()<<"1";
// if(QApplication::keyboardModifiers () == Qt::ControlModifier){
// qDebug()<<"2";
// QString name = textEdit->wordAtLineIndex(line,index),text = textEdit->text(),textLine = textEdit->text(line);
// QRegExp re;
// if(textLine.count("{") || textLine.count(";")==0 || textLine.indexOf(QRegExp(name+"\\s*\\(")) == -1)
// re.setPattern(name);
// else
// re .setPattern(name + "\\s*\\([^\\)]*\\)\\s*\\{");
// int pos = text.indexOf(re);
// if(pos != -1){
// int l,i;
// qDebug()<<"here!";
// textEdit->lineIndexFromPosition(pos,&l,&i);
// this->textEdit->setCursorPosition(l,i);
// textEdit->ensureCursorVisible();
// }
// }
}
第二行的qDebug()可以输出。