1
我有一个可编辑的QTreeWidget
,并希望在用户每次编辑项目时更新一些内部结构。但是,当某些项目发生更改时,没有特别发出信号。有itemChanged()
,但它不仅在物品发生变化时发出,而且在创建时也发出。到目前为止,我无法找到区分这两种情况的优雅方法。在QTreeWidget中跟踪更改
我发明的唯一的解决办法是这样的:
# slot for itemClicked()
def EditName(self, item, column):
self.oldname = item.text(0)
# slot for itemChanged()
def RenameFile(self, item, column):
newname = item.text(0)
if newname != self.oldname:
# Do something with newname here
然而,这不是很方便,因为我不得不手动设置self.oldname
任何时候,我添加一个新的项目到树,这发生在代码中有很多地方。