2

我想创建一个QTreeWidget项目既可编辑又可启动的地方。我希望它表现得像 Windows 资源管理器:

单击 -> 选择

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

双击 -> 执行“启动”

所以我为itemClicked()和创建了插槽itemDoubleClicked()。第一个如下:

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

第二个只是“启动”文件。

但是这种方案不区分双击和连续两次,所以QLineEdit双击后还是会出现 。是否可以强行摆脱编辑器?我尝试了一种黑客解决方案,例如隐藏和显示该项目,但它没有用。

4

1 回答 1

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)
于 2012-09-02T17:49:17.200 回答