ツリーに QStandardItemModel があり、アイテムを編集する必要があります。ユーザーがダブルクリックでできることと同じアクションを実行する必要があります。
項目は編集可能です。
アイテムの編集を開始するには、ビューのこのスロット(モデルではありません!)を呼び出す必要があります。
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"
したがって、たとえば、2番目のルートアイテムの3番目のアイテムを「foo」に設定する場合は、次のように記述します。
index1 = myModel.index(2, 1);
index2 = myModel.index(3, 1, index1);
myModel.setData(index2, "foo");