1

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

うまくいきませんでした。私はやろうとしました:

for each in returnedValue.toList(): print each

しかし、それでもいくつかの QVariants が出力されます。QVariant を Python リストに変換するには、どのメソッドを使用する必要がありますか?

4

1 に答える 1

4

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

于 2015-02-09T08:17:20.800 に答える