如何禁用 PyQt 中 QTreeView 和 QFileSystemModel 上的双击文件重命名行为?
-
12-12-2019 - |
题
简单的问题。我想使用 F2 或 Enter 重命名,然后双击打开文件。
使用 self.treeView.doubleClicked.connect(self.doubleclick)
我可以做我的事情 self.doubleClick
方法,但重命名仍然被触发。
该模型不是只读的(model.setReadOnly(False)
).
解决方案
默认情况下, doubleClicked
信号在正常编辑操作之前发出,这是由 QAbstractItemView.edit 功能。
幸运的是,这个函数是虚函数,因此可以在子类中重新实现:
class TreeView(QtGui.QTreeView):
def edit(self, index, trigger, event):
if trigger == QtGui.QAbstractItemView.DoubleClicked:
print 'DoubleClick Killed!'
return False
return QtGui.QTreeView.edit(self, index, trigger, event)
其他提示
我不知道你是否在Python版本中有这个,但在C ++ Qt中,您只需在QABStractItemView中设置编辑触发器:
void setEditTriggers ( EditTriggers triggers )
不隶属于 StackOverflow