简单的问题。我想使用 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 )

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top