

現在、PyQt5を使ってデータ処理用のGUIを作成中なのですが、QListView上に編集したいデータ名を表示し、List上で選択して各処理を行うようにしたいのです。そこで、QstandardItemModelを使用して、表示するところまでは出来ました。

[code]

                item = QtGui.QStandardItem(filename)
                item.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsUserCheckable | QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsDragEnabled | QtCore.Qt.ItemIsEditable)
                item.setData(QtCore.QVariant(QtCore.Qt.Checked), QtCore.Qt.CheckStateRole)
                self.ui.Imodel.appendRow(item) #Listに追加
    
[/code]

しかし、List上のItemを名前編集可能(Qt.ItemIsEditable)、移動可能(Qt.ItemIsDragEnabled)にしたいので、ファイルパスなどの情報(この情報は非表示にしておく)をItemModelに格納して、名前編集や移動させても常に取得できるようにしたいのですが、やり方が分かりません。

ご存知の方がいらっしゃれば、ご教示お願い致します。


CC BY-SA 3.0
2017-08-16T11:41:15.680
37248
2020-05-25T03:02:15.217
24907
question
python
QstandardItemModelの使い方について


`QStandardItem.setData`の第二引数に`QtCore.Qt.UserRole`「以上」の値を指定してデータを格納すれば、`QStandardItem.data`の引数に同じ値を指定することで、格納した値が取得できると思います。


CC BY-SA 3.0
2017-08-17T15:04:26.090
37293
2017-08-17T15:04:26.090
20098
37248
answer