我想创建一个QTreeWidget
,其中的项目都是可编辑和可启动的。我希望它的行为类似于Windows资源管理器:
单击 - >选择
单击之前选择的项目 - >打开LineEdit以编辑名称
双击 - >执行'启动'
因此,我为itemClicked()
和itemDoubleClicked()
创建了广告位。第一个是以下内容:
def EditName(self, item, column):
if self.lastclick == item:
self.editItem(item)
self.lastclick = item
第二个只是'启动'文件。
但是,这种解决方案无法区分双击和两次连续点击,因此双击后仍会显示QLineEdit
。有可能强行摆脱编辑器吗?我尝试了一个黑客解决方案,比如隐藏和显示项目,但它没有用。
答案 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)