- Qt 5.3
- Qt QML
- Chapter 7: In Summary
- Qt 5.3.2 Reference Documentation

# 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.