我想创建一个QTreeWidget
,其中的项目既可编辑又可启动。我希望它的行为像 Windows 资源管理器:
单击 -> 选择
单击之前选择的项目 -> 打开 LineEdit 编辑名称
双击 -> 执行“启动”
因此,我为 itemClicked()
和 itemDoubleClicked()
创建了插槽。第一个如下:
def EditName(self, item, column):
if self.lastclick == item:
self.editItem(item)
self.lastclick = item
第二个只是“启动”文件。
但是,这种解决方案不区分双击和连续两次单击,因此双击后仍然会出现QLineEdit
。是否可以强行摆脱编辑器?我尝试了一种黑客解决方案,例如隐藏和显示该项目,但它不起作用。
最佳答案
您只需在 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)
关于c++ - QTreeWidget : Windows Explorer-like editing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12238299/