问题是:我有 QListWidget,该选择模式允许通过单击一个、拖动和释放另一个来选择多个项目。我想在屏幕上的任何地方释放鼠标时发出信号(仅当它首先被按下列表中的某个项目时)。我该怎么做?
从我到目前为止的调查来看: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)
我将不胜感激