問題は次のとおりです: QListWidget があります。この選択モードでは、1 つをクリックしてドラッグし、もう 1 つを離すことで複数のアイテムを選択できます。画面のどこかでマウスが離されたときに信号を発したいと思います(リスト内のアイテムの上で最初に押し下げられた場合のみ)。どうすればいいですか?
私がこれまでに調査したことから:QListWidgetにはitemSelectionChangedシグナルがありますが、これは、アイテムをドラッグしているときに新しいアイテムが選択されるたびにシグナルを発します
QListWidget には QAbstractItemView から継承された信号クリックがありますが、これは同じ項目でマウスが押されて離された場合にのみ機能します
QListWidget クラスを拡張して mouseReleaseEvent を定義しようとしましたが、それは元のイベントをオーバーライドし、リストの適切な動作を台無しにします
installEventFilter で空白のラベルを作成し、mouseReleasedFilter クラスを作成しようとしましたが、何とか機能しましたが、もっとエレガントな方法はありますか?
class mouseReleasedFilter(QtCore.QObject):
def __init__(self, parent = None):
super(mouseReleasedFilter, self).__init__(parent)
def eventFilter(self, object, event):
if event.type() == QtCore.QEvent.MouseButtonRelease:
print 'released'
return False
return True
self.filter = mouseReleasedFilter(self)
self.label.installEventFilter(self.filter)
どんな助けにも感謝します