Qmlのvariantとvarの対比

816 ワード

なぜQt Quick 2の変数定義がvarに変更されたのですか?続いてvariantを使いませんか?それらの違いを見ましょう.
QtQuick 1.x
  • property variant内部はQVariaantである.
  • オブジェクトがvariant変数に割り当てられると、QVarantMapに変換されます.
  • は、javascriptからこの属性にアクセスすると、QVariantMapがJSオブジェクトに変換されることになる.
  • javascriptの関数は、特別なJS値(null、undefined)は、「property variant」タイプの属性に格納できません.
  • QtQuick 2.x
  • property var内部は、javascript値である.
  • property varは、関数参照を含むjavascriptを作成するすべてのコンテンツをサポートしています.
  • は、C+(QObject:property()またはQQmlProperty:read()からアクセスした場合のみ、QVarantに変換される(他のJS値をQVariantに変換する変換規則は同じ).
  • は、C+++エンドでタイプを実装する際に、QJSValueクラスを属性/方法パラメータとして使用して、C++とQML/JSとの間で値を伝送し、タイプ/データロスを引き起こすことなく使用することができる.
  • 締め括りをつけるproperty varを使用すると、より大きな役割を果たし、不必要な変換を回避し、より良い性能を発揮します.
    ref:https://wiki.qt.io/Property-var