Pythonはオブジェクトに自動的にQVariantsを変換する可能性はありますか?

StackOverflow https://stackoverflow.com/questions/1372557

  •  21-09-2019
  •  | 
  •  

質問

のPyQtは4.5.4、Pythonの2.6.2

以前のみQVariantsが許可された場所バージョン4.5.2 PyQtは、任意のPythonを受け入れることができるので、

はオブジェクト。このいくつかの問題につながるます:

>>> itemModel.data(index, Qt.EditRole)
<Product object at 0xb7ce766c>
>>> index.data(Qt.EditRole)
<QVariant object at 0xb7ce768c>

この不整合を削除する可能性はありますか?

役に立ちましたか?

解決

PyQtは4.6、近代的なAPIを使用します:

  

QVariantクラスは次のように実装されています   マップされたタイプ。任意のPythonオブジェクトをすることができ   QVariantインスタンスがあるときに渡されます   予想。 QtはQVariantを返すとき   それは自動的になります   元のPythonに変換   オブジェクトまたは同等。 Noneです   無効QVariantとして解釈され、   その逆ます。

他のヒント

あなたはQVariant上.toPyObject()メソッドを使用することができます。私は、カスタムタイプのため、この作品を疑うもののます。

私が見つけた唯一の解決策は、当時QVariantにすべての値に変換されます:

QVariant(possiblyAQVariant).toPyObject()

QVariantsとPythonのタイプのためのこの作品ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top