如何在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)