私はエディタで簡単なテキスト検索を実装しようとしています。この問題まですべてがうまくいっています!ここで後方検索を実装しようとしています。手順は次のとおりです。被写体が後方にあるかどうかを確認し、ビープ音を1回鳴らし、もう一度[検索]ボタンが押された場合は、文書の最後に移動して再度検索します。 "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()カーソルが文書内の位置を指しているかどうかを返します。これは、カーソルがnullポインタまたは何か(AFAIK)であり、カーソルがここでポインタではないことを意味しません。しかし、これは便利なヒントだと思うので、もう一度文書をチェックします。確かにありがとう。 –