Je crée une sous-classe de QAbstractItemModel
à afficher dans un QTreeView
.Comment récupérer mon objet python d'un QVariant dans PyQt4?
Ma fonction index()
et parent()
crée le QModelIndex
en utilisant la fonction héritée QAbstractItemModel
createIndex
et fournissant le row
, column
et data
nécessaires. Ici, à des fins de test, les données sont une chaîne Python.
class TestModel(QAbstractItemModel):
def __init__(self):
QAbstractItemModel.__init__(self)
def index(self, row, column, parent):
if parent.isValid():
return self.createIndex(row, column, "bar")
return self.createIndex(row, column, "foo")
def parent(self, index):
if index.isValid():
if index.data().data() == "bar": <--- NEVER TRUE
return self.createIndex(0, 0, "foo")
return QModelIndex()
def rowCount(self, index):
if index.isValid():
if index.data().data() == "bar": <--- NEVER TRUE
return 0
return 1
def columnCount(self, index):
return 1
def data(self, index, role):
if index.isValid():
return index.data().data() <--- CANNOT DO ANYTHING WITH IT
return "<None>"
Dans les index()
, parent()
et data()
fonctions que je dois récupérer mes données. Il s'agit d'un QVariant
. Comment récupérer mon objet Python à partir de QVariant?
Cette réponse est plus en ligne avec la question initiale. Ça m'a aidé merci – Craig