如何从QVariant获取Python List

时间:2015-02-09 08:09:13

标签: python list qt pyqt qvariant

如果Qt.UserRole模型的headerData()返回Python列表变量:

if role==Qt.UserRole:
    return QVariant(['one','two','three'])

而不是常规的Python列表,而是使用:

调用的函数
returnedValue = myModel(index.column(), Qt.Horizontal, Qt.UserRole)

获取QVariant个对象:

<PyQt4.QtCore.QVariant object at 0x10d3b67c0>

尝试使用以下命令将返回的QVariant对象转换为Python:

pythonList=returnedValue.toPyObject()

没有工作。我试过这样做:

对于returnValue.toList()中的每个

:     打印每个

但是仍然打印出一些QVariants。应该使用什么方法将QVariant转换为Python列表?

1 个答案:

答案 0 :(得分:3)

QVariant是几乎所有类型的内置类型的通用容器,因此为了回送QVariant数据,您需要知道它存储的数据类型。

from PyQt4.QtCore import QVariant

a = QVariant(['one', 'two', 'three'])

aList = [unicode(i.toString()) for i in a.toList()]
print aList

输出为:

[u'one', u'two', u'three']