0

信号QListWidget用のスロットがあるコントロールがあります。selectionChangedリストは複数選択用に構成されています。ユーザーがドラッグして複数のアイテムを選択しているときに、マウスボタンがまだ押されている間にスロットが呼び出されます。マウスボタンが離されるまで変更を処理したくありません。私が本当に必要としているのは、ある種の編集終了信号ですが、必ずしもコントロールへのフォーカスが失われる必要があるわけではありません。この初心者に手引きをお願いできますか?

4

1 に答える 1

0

http://doc.qt.io/qt-4.8/qlistwidget.html#signals

http://doc.qt.io/qt-4.8/qfocusevent.html

http://doc.qt.io/qt-4.8/qmouseevent.html

http://doc.qt.io/qt-4.8/qtimerevent.html

上記のイベントの組み合わせ、または既に に組み込まれているシグナルを使用してQListWidget、「編集完了タイマー」を開始します。別のクリックまたは編集がある場合は、タイマーをリセットします。タイマーのタイムアウト時に、計算​​またはフィルタリングを行います。

例えば:

subclass QListWidget.

initialize the timer (singleshot, set at 750 ms or so)

itemSelectionChanged => start the timer

mousePressEvent => stop the timer

mouseReleaseEvent => start the timer

keyPressEvent => (shift),(ctrl), or (arrows) => stop the timer
keyReleaseEvent => (all keys released) => start the timer

focusOutEvent => start the timer

focusInEvent => stop the timer

connect the timer's timeout signal to a custom signal `myEditingFinished`

の外側で、QListWidgetそのmyEditingFinished信号に接続するrunDatabaseQueryか、何をしようとしているかに接続します。

それが役立つことを願っています。

于 2013-05-24T23:52:24.680 に答える