Details
-
Technical task
-
Resolution: Done
-
P1: Critical
-
None
Description
Qt 5's QML engine implements automatic data bindings on top of the Qt property system using dynamic data structures and change notifications through notifier signals.
Through research we have learned that it should be possible to implement a more efficient data binding system by encapsulating the property data itself in a type, which can intercept reading and writing.
This will allow us to support automatic data bindings from C++ and significantly reduce our memory and initialization overhead. It will also form the basis of a new compilation of QML to C++.
The API could look a little bit like this:
QProperty<int> width; QProperty<int> height; QProperty<int> area; width.bind(height); // keep it square area.bind([&]() { return width * height; } height = 100; // marks width and area dirty print(area); // updates width and area
Attachments
Issue Links
- is required for
-
QTBUG-73675 Streamline QML for better toolability and performance
- Open
- relates to
-
QTBUG-71577 QML needs a way to atomically update multiple bindings at the same time
- Open
-
QTBUG-73892 A way to reference a property from QML
- Closed