Chapter 7: In Summary
In this tutorial, we've shown the basic steps for creating a QML extension:
- Define new QML types by subclassing QObject and registering them with qmlRegisterType()
- Add callable methods using Q_INVOKABLE or Qt slots, and connect to Qt signals with an onSignal syntax
- Add property bindings by defining NOTIFY signals
- Define custom property types if the built-in types are not sufficient
- Define list property types using QQmlListProperty
- Create a plugin library by defining a Qt plugin and writing a qmldir file
The Integrating QML and C++ documentation shows other useful features that can be added to QML extensions. For example, we could use default properties to allow slices to be added without using the slices property:
PieChart { PieSlice { ... } PieSlice { ... } PieSlice { ... } }
Or randomly add and remove slices from time to time using property value sources:
PieChart { PieSliceRandomizer on slices {} }
See the Integrating QML and C++ documentation for more information.