Python 什么可以阻止mousePressEvent或事件过滤器鼠标单击事件?
我似乎无法在QTreeWidget中获得任何鼠标点击。我试过 …覆盖mousePressEvent,但它从未运行过。甚至不记录消息。 …使用事件文件管理器。它适用于除鼠标点击以外的所有操作。 …使用代理。他们的编辑器事件可以正常工作,但只有在一个项目上,这是不够的 …确保所有内容都添加到布局中。我使用了QTCreator,输出使用layout.addWidget。我还将小部件实例添加到主窗口中的布局中。 我能够使用答案将小部件注册为QTreeWidget的事件过滤器,如下所示:Python 什么可以阻止mousePressEvent或事件过滤器鼠标单击事件?,python,qt,events,mouse,qtreewidget,Python,Qt,Events,Mouse,Qtreewidget,我似乎无法在QTreeWidget中获得任何鼠标点击。我试过 …覆盖mousePressEvent,但它从未运行过。甚至不记录消息。 …使用事件文件管理器。它适用于除鼠标点击以外的所有操作。 …使用代理。他们的编辑器事件可以正常工作,但只有在一个项目上,这是不够的 …确保所有内容都添加到布局中。我使用了QTCreator,输出使用layout.addWidget。我还将小部件实例添加到主窗口中的布局中。 我能够使用答案将小部件注册为QTreeWidget的事件过滤器,如下所示: # In __i
# In __init___
# self.tree is the QTreeWidget
self.tree.viewport().installEventFilter(self)
def eventFilter(self, target, event):
"""
This widget is an event filter for the tree, so this function is triggered
automatically
"""
# Print on right-click
if (event.type() == QEvent.MouseButtonPress and
event.button() == Qt.RightButton):
print("Right Click")
# Don't block/accept the event
return False
因为你可以看到并点击QTreeWidget实际上是它的视口。您应该在它的视口上安装事件过滤器。因为您可以看到并单击QTreeWidget的实际上是它的视口。您应该在其视口上安装事件过滤器