Details
-
Epic
-
Resolution: Unresolved
-
P1: Critical
-
None
-
None
-
Adopting bindable QProperty throughout Qt
-
-
89
-
Qt6_Foundation_ Sprint 13
Description
To understand the reason of the conversion check QTBUG-84909.
The most important classes to be converted are:
- QObject
- QWindow
- QQmlComponent
- QQuickItem
- QQuickWindow
These are used really often in QML code, and failing to convert them
would mean missing out on some huge opportunities to improve generated code.
However, it is possible to use any QObject in QML. If the properties are not
converted, using them in bindings will go the slow path. In particular,
the classes with Q_PROPERTY below are available from modules commonly
used with QtQuick in QML. Some of them are obviously more important than
others. For example QIntValidator is inherited by QQuickIntValidator,
and that one is registered as a QML type. QPluginLoader, while
theoretically accessible, is not so easy to stumble over in QML.
Furthermore, any additional module that exposes types to QML, should
convert the public ones to QProperty before being released for the first
time with a new major version. For example QtScxml should definitely
convert QScxmlStateMachine and friends. Otherwise working with that in
QML will be slow for all of Qt6. The same holds for the relevant classes
in QtTest, and probably quite a few other modules.
QML types which are only exported via QML (no public header) can be converted after the 6.0 release too as the property conversion is compatible to QML only users.
- QtQml:
- QJSEngine
- QQmlEngine
- QQmlComponent
- QtQuick:
- QQuickItemGrabResult
- QQuickPaintedItem
- QQuickWindow
- QQuickFramebufferObject
- QQuickView
- QQuickItem
Attachments
Issue Links
- relates to
-
QTBUG-89505 Extend QProperty to cover the needs of qtbase and qtdeclarative
- In Progress
- resulted in
-
QTBUG-81824 Refactor Qt NFC for Qt 6
- Closed
-
QTBUG-84590 Qt Remote Objects Changes for Qt 6
- Closed
-
QTBUG-88611 Migrate Qt ScXML/QStateMachine to Qt 6
- Closed
-
QTBUG-88613 Migrate Qt Positioning to Qt 6
- Closed
-
QTBUG-88616 Migrate Qt Sensors to Qt 6
- Closed
-
QTBUG-88617 Migrate Qt SerialPort to Qt 6
- Closed
-
QTBUG-88618 Migrate Qt WebSockets to Qt 6
- Closed
-
QTBUG-88619 Migrate Qt WebChannel to Qt 6
- Closed
-
QTBUG-89495 Adopt new bindable QProperty API in Qt Bluetooth
- Closed
-
QTBUG-89498 QtSerialBus: Adopt new bindable QProperty API
- Closed
-
QTBUG-89499 Adopt new bindable QProperty API in Qt WebEngine
- Withdrawn