Property-var

From Qt Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

QtQuick 1.x

  • There was no javascript var type property, but property variant, internally a QVariant.
  • Assigning a JavaScript object to that property would result in it being converted to a QVariantMap.
  • Accessing that property from JS would result in that QVariantMap being converted back into a JS object.
  • JS function reference, special JS values (null, undefined) could not be stored in the 'property variant' type of property.

QtQuick 2.0

  • Deprecated "property variant" and added "property var; internally they are javascript values.
  • Support storing of anything created in JS, including JS function references.
  • Only when accessed from C++ (via QObject::property() or QQmlProperty::read()) will be converted to a QVariant (same conversions rules of any other JS value to QVariant conversion apply).
  • When implementing types on the C++ side, one can use the QJSValue class as a property/method parameter to transfer values between C++ and QML/JS without type/data loss.
    • Includes JS functions; for example, you can assign a function to a property from QML and call it later from C++ using QJSValue::call().