PyQt:如何在itemmodel中编辑项目?

时间:2012-05-23 18:00:52

标签: qt qt4 pyqt

我在树中有QStandardItemModel,我需要编辑一些项目。 我需要做同样的动作,用户可以通过双击来完成。

项目可编辑。

1 个答案:

答案 0 :(得分:1)

开始编辑项目,您需要调用视图的这个插槽(而不是模型!):

myView.edit(index);

您还可以通过QAbstractItemModel.setData直接设置新值。此角色默认为Qt.EditRole,这与编辑完成后视图使用的角色相同:

myModel.setData(index, newValue);

其中index引用您要修改的项目。

您可以通过询问模型 创建此类QModelIndex

myModel.index(row, column); # for a root item
myModel.index(row, column, parent); # for a children of "parent"

因此,例如,如果要将第二个根项目中的第三个项目设置为“foo”,请写:

index1 = myModel.index(2, 1);
index2 = myModel.index(3, 1, index1);
myModel.setData(index2, "foo");