私が書いているエディターで簡単なテキスト検索を実装しようとしています。この問題が発生するまで、すべて問題ありませんでした。ここで後方検索を実装しようとしています。手順は次のとおりです。件名が見つからない場合は後方を探し、ビープ音を1回鳴らし、検索ボタンをもう一度押した場合は、ドキュメントの最後に移動して、もう一度検索を実行します。「reachedEnd」はintであり、editorクラスのプライベートメンバーとして定義されます。これが後方検索を行う関数です。
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を返します。これは失敗を意味します。どうしてこれが失敗するのでしょうか?!! 前もって感謝します。