如何在PySide中的QTreeView中更改项目时获取以前的名称

如何在PySide中的QTreeView中更改项目时获取以前的名称

问题描述:

我在Maya 2014中创建UI以管理变换上的自定义属性。到目前为止,我已经成功生成了变换,UI将生成模型中的项目(使用QStandardItemModel),最后使用QTreeView显示它。如何在PySide中的QTreeView中更改项目时获取以前的名称

但是,当我或用户更改QTreeView中的项目名称时,我想获取以前的名称和建议的新名称,以便我可以更新自定义属性和变换名称。

我已经搜遍了谷歌,我找不到任何返回模型/视图的上一个和新名称的东西,但我记得使用QTreeWidget发现了一些东西。我能找到的最接近的是QAbstractItemDelegate,但它看起来不像它可以提供以前的名称值。

我能想到的,我错过的唯一的事情是与QModelIndex有关,但无论哪种方式我都难倒了。

谢谢!

重新实现模型的setData方法编辑过程中得到了新旧值:

class TreeModel(QtGui.QStandardItemModel): 
    def setData(self, index, value, role): 
     if role == QtCore.Qt.EditRole: 
      print 'old:', self.itemFromIndex(index).text() 
      print 'new:', value 
     return QtGui.QStandardItemModel.setData(self, index, value, role)