をエディター デリゲートとしてQTableView
使用する 1 つの列と、ユーザーが に入力するときに動的に更新する必要がある他の列があります(たとえば、列の 1 つは に入力されたテキストの長さを含み、ユーザーとして更新する必要があります)。 Enter を押してコミットするのを待たない)。QLineEdit
QLineEdit
QLineEdit
私はこのコードを使用しました:Qt:編集が完了した後ではなく、QTableViewアイテムデータが編集されている間にシグナルを送信しますか?これは主に機能します。QLineEdit textChanged()
信号をエディターの信号に接続しcommitData()
ます。
このコードの問題は、ユーザーが入力すると、QLineEdit
の挿入カーソルが常に末尾にジャンプすることです。行末にテキストを追加する場合は問題ありません。しかし、ユーザーが行の途中でテキストを挿入または編集したい場合、1 文字を入力するたびに、テキスト挿入カーソルがQLineEdit
. 各キーストロークの後、途中で挿入/編集を完了するために、カーソルの位置を変更する必要があります。
マッパーを無効にすると、カーソルがジャンプしないため、エディター デリゲートに固有のものではありません。上記のリンクされた質問のコードを使用した場合にのみ発生します。
QLineEdit textChanged()
とのコードを見ましたcommitData()
が、カーソルが の最後にジャンプする原因がわかりませんQLineEdit
。何か案は?ありがとう!