Pythonはオブジェクトに自動的にQVariantsを変換する可能性はありますか?
質問
の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のタイプのためのこの作品ます。
所属していません StackOverflow