我試圖在編輯器中編寫一個簡單的文本搜索。一切都很好,直到這個問題!我正在嘗試在這裏實施向後搜索。過程是:向後查找主題,如果沒有找到,則發出一聲蜂鳴,如果再次按下查找按鈕,則轉到文檔末尾,然後再次搜索。 「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),並且遊標不是這裏的指針。但我認爲這是一個有用的提示,我會再次檢查文檔。的確如此。 –