4

简单的问题。我想使用 F2 或 Enter 进行重命名,然后双击打开文件。

使用self.treeView.doubleClicked.connect(self.doubleclick)I can do things 在我的self.doubleClick方法中,但仍然会触发重命名。

该模型不是只读的 ( model.setReadOnly(False))。

4

2 回答 2

9

我不知道您在 python 版本中是否有此功能,但在 C++ Qt 中,您只需在 QAbstractItemView 中设置编辑触发器:

void setEditTriggers ( EditTriggers triggers )

于 2013-03-12T03:29:53.870 回答
2

默认情况下,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)
于 2012-10-01T15:35:26.757 回答