我试图在编辑器中编写一个简单的文本搜索。一切都很好,直到这个问题!我正在尝试在这里实施向后搜索。过程是:向后查找主题,如果没有找到,则发出一声蜂鸣,如果再次按下查找按钮,则转到文档末尾,然后再次搜索。 “reachedEnd”是一个int,定义为编辑器类的私有成员。这是执行反向搜索的功能。移动QTextCursor到结尾的问题
void TextEditor::findPrevPressed() {
QTextDocument *document = curTextPage()->document();
QTextCursor cursor = curTextPage()->textCursor();
QString find=findInput->text(), replace=replaceInput->text();
if (!cursor.isNull()) {
curTextPage()->setTextCursor(cursor);
reachedEnd = 0;
}
else {
if(!reachedEnd) {
QApplication::beep();
reachedEnd = 1;
}
else {
reachedEnd = 0;
cursor.movePosition(QTextCursor::End);
curTextPage()->setTextCursor(cursor);
findPrevPressed();
}
}
}
问题是,光标不会移动到最后!它返回False,这意味着失败。这怎么会失败?提前致谢。
我感谢您的帮助,但cursor.isNull()返回光标是否指向文档中的位置。这并不意味着游标是空指针或某物(AFAIK),并且游标不是这里的指针。但我认为这是一个有用的提示,我会再次检查文档。的确如此。 –