1

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

项目是可编辑的。

4

1 回答 1

2

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

myView.edit(index);

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

myModel.setData(index, newValue);

whereindex引用您要编辑的项目。

您可以通过询问模型来创建这样的: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");
于 2012-05-23T18:17:30.810 回答