QTreeWidget:类似于Windows资源管理器的编辑

时间:2012-09-02 17:44:43

标签: c++ python qt4 pyqt4

我想创建一个QTreeWidget,其中的项目都是可编辑和可启动的。我希望它的行为类似于Windows资源管理器:

单击 - >选择

单击之前选择的项目 - >打开LineEdit以编辑名称

双击 - >执行'启动'

因此,我为itemClicked()itemDoubleClicked()创建了广告位。第一个是以下内容:

def EditName(self, item, column):
    if self.lastclick == item:
        self.editItem(item)
    self.lastclick = item

第二个只是'启动'文件。

但是,这种解决方案无法区分双击和两次连续点击,因此双击后仍会显示QLineEdit。有可能强行摆脱编辑器吗?我尝试了一个黑客解决方案,比如隐藏和显示项目,但它没有用。

1 个答案:

答案 0 :(得分:4)

您只需要在QTreeWidgetItem上设置标志以包含ItemIsEditable选项,并在QTreeWidget上为SelectedClick设置编辑触发器

def populate( self, tree ):
    tree.setEditTriggers(tree.SelectedClicked)
    for i in range(10):
        item = QTreeWidgetItem(['Testing %02i' % i])
        item.setFlags(item.flags() | item.ItemIsEditable)