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