如何从QVariant中获取Python列表



如果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()

没用。我试过做:

对于returnedValue.toList()中的每个:打印每个

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

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']

相关内容

  • 没有找到相关文章

最新更新