Estoy creando una subclase de QAbstractItemModel
que se mostrará en un QTreeView
.¿Cómo recupero mi objeto Python de un QVariant en PyQt4?
Mi index()
y parent()
función crea el QModelIndex
usando la función QAbstractItemModel
heredada createIndex
y dotándola de la row
, column
y data
necesario. Aquí, para fines de prueba, los datos son una cadena de 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>"
Dentro de los index()
, parent()
y data()
funciones que necesito mis datos. Viene como QVariant
. ¿Cómo recupero mi objeto Python del QVariant?
Esta respuesta está más en línea con la pregunta inicial. Me ayudó gracias – Craig