2015-02-09 58 views
1
获得Python列表

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

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

而不是常规的Python列表的调用与函数:

returnedValue = myModel(index.column(), Qt.Horizontal, Qt.UserRole) 

得到了QVariant object:

<PyQt4.QtCore.QVariant object at 0x10d3b67c0> 

尝试转换返回的QVariant反对Python使用:

pythonList=returnedValue.toPyObject() 

没有工作。我试图做的事:

每个在returnedValue.toList(): 打印每个

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

回答

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

相关问题