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 QDeclarativeListProperty
  • Create a plugin library by defining a Qt plugin and writing a qmldir file

The Extending QML Functionalities using C++ reference 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 Extending QML Functionalities using C++ reference documentation for more information.

© 2016 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.