The QML painting rate is calculated by the FrequencyMonitor class, which turns a stream of events (received via the notify() slot), into an instantaneous and an averaged frequency: \quotefromfile multimedia/video/snippets/frequencymonitor/frequencymonitor.h \skipto class FrequencyMonitor : public QObject \printuntil Q_OBJECT \skipto Q_PROPERTY(qreal instantaneousFrequency \printuntil averageFrequencyChanged) \skipto public \printuntil : \dots \skipto static void qmlRegisterType \printuntil ; \skipto public slots \printuntil notify(); \skipto }; \printline }; The FrequencyMonitor class is exposed to QML like this \quotefromfile multimedia/video/snippets/frequencymonitor/frequencymonitordeclarative.cpp \skipto FrequencyMonitor::qmlRegisterType \printuntil } and its data is displayed by defining a QML item called FrequencyItem, like this: \quotefromfile multimedia/video/snippets/frequencymonitor/qml/frequencymonitor/FrequencyItem.qml \skipto import FrequencyMonitor \printuntil id: root \dots \skipto function notify \printuntil id: monitor \skipto onAverageFrequencyChanged \printuntil { \skipto averageFrequencyText \printuntil /^\}/ The result looks like this: \image video-qml-paint-rate.png