Данные MIME - это QByteArray
, который содержит сериализованное представление отброшенного элемента.
Так что вам понадобится функция для декодирования данных, например:
def decodeMimeData(self, data):
result = {}
value = QtCore.QVariant()
stream = QtCore.QDataStream(data)
while not stream.atEnd():
row = stream.readInt32()
col = stream.readInt32()
item = result.setdefault(col, {})
for role in range(stream.readInt32()):
key = QtCore.Qt.ItemDataRole(stream.readInt32())
stream >> value
item[key] = value.toPyObject()
return result
Результат в форме дикта, содержащего диктанты для каждого столбца отброшенного предмета. В столбце содержатся данные для каждой представленной роли.
Таким образом, чтобы получить текст из нулевого столбца, вы должны сделать:
format = 'application/x-qabstractitemmodeldatalist'
data = event.mimeData().data(format)
item = self.decodeMimeData(data)
print item[0][QtCore.Qt.DisplayRole]