我有一个QTreeWidget,我要在其中禁用右键单击该项目。当前,我正在使用itemClicked
信号来检测对treeWidget子级的点击,但是我只想在用户左键单击某个项目时执行某项操作,而在右键单击时不执行任何操作。现在,左击和右击都被检测到了,我无法区分两者。提前致谢!
您可以重新实现treewidget的鼠标释放事件:
class TreeWidget(QtGui.QTreeWidget):
def mouseReleaseEvent(self, event):
if event.button() != QtCore.Qt.RightButton:
super(TreeWidget, self).mouseReleaseEvent(event)
或在treewidget的视口上安装事件过滤器:
class MainWindow(QtGui.QMainWindow):
def __init__(self):
...
self.tree = QtGui.QTreeWidget(self)
self.tree.viewport().installEventFilter(self)
def eventFilter(self, source, event):
if (event.type() == QtCore.QEvent.MouseButtonRelease and
event.button() == QtCore.Qt.RightButton and
source is self.tree.viewport()):
return True
return super(Window, self).eventFilter(source, event)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句