2

シグナルを受信したときにQLineEdit::textEdited()、編集前のテキストを確認できますか? 編集前のテキストと編集後のテキストを比較する必要があります。

textEdited()シグナルには、新しいテキストである引数が 1 つだけあります。を呼び出すQLineEdit::text()と、新しいテキストも返されます。

今のところ、古いテキストを QString に保持し、編集があるたびにその QString を更新することしか考えられませんが、プログラムによる変更 (を介して行われるQLineEdit::setText()) を考慮する必要があります。

または、変更前と変更後に同時にテキストを取得できるテキスト変更を (おそらくバリデーターを介して) 傍受する別の方法はありますか? できれば、ユーザー変更のみ (非プログラム的) にします。

4

1 に答える 1

1

今のところ、古いテキストを QString に保持し、編集があるたびにその QString を更新することしか考えられませんが、プログラムによる変更 (QLineEdit::setText() を介して行われる) を考慮する必要があります。

確かに、その方法しか考えられませんが、textEdited() とは異なり、textChanged() を使用すると、ドキュメントに従ってプログラムの変更をキャッチすることさえできることに注意してください。

textChanged() とは異なり、このシグナルは、setText() の呼び出しなどによってテキストがプログラムによって変更された場合には発行されません。

于 2014-06-05T01:50:08.257 に答える