我在树中有QStandardItemModel,我需要编辑一些项目。 我需要做同样的动作,用户可以通过双击来完成。
项目可编辑。
答案 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");