我以前从未使用事件过滤,因此我从下载的示例(已经工作)中添加了以下代码: -
def eventFilter(self, source, event):
if (event.type() == QtCore.QEvent.MouseMove and
source is self.label):
pos = event.pos()
print('mouse move: (%d, %d)' % (pos.x(), pos.y()))
if (event.type() == QtCore.QEvent.MouseButtonDblClick and
source is self.label):
print('Double click')
return QtGui.QWidget.eventFilter(self, source, event)
我正在使用QTDesigner创建主窗口,如下所示
class View(QtGui.QMainWindow, form_class): # any super class is okay
def __init__(self, router, parent=None, job=None):
super(View, self).__init__(parent)
self.setupUi(self)
然后添加此代码以实现鼠标双击标签的检测。
self.label.setMouseTracking(True)
self.label.installEventFilter(self)
代码在我下载的示例中运行正常,但在我的应用程序中没有。
是否有关于使用QTDesigner创建使代码无效的窗口的内容?
我发现的大多数其他示例都是处理鼠标事件而不是双击事件。