diff options
Diffstat (limited to 'doc/src/examples/video-qml-paint-rate.qdocinc')
-rw-r--r-- | doc/src/examples/video-qml-paint-rate.qdocinc | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/doc/src/examples/video-qml-paint-rate.qdocinc b/doc/src/examples/video-qml-paint-rate.qdocinc new file mode 100644 index 0000000000..2a645d7f23 --- /dev/null +++ b/doc/src/examples/video-qml-paint-rate.qdocinc @@ -0,0 +1,64 @@ +The QML painting rate is calculated by first creating a \l{QObject}-derived +class called PaintEventMonitor, which allows its client to provide a +\l{QWidget} to be monitored, and which emits a signal when that widget +is repainted: + +\quotefromfile video/snippets/painteventmonitor/painteventmonitor.h +\skipto class PaintEventMonitor +\printuntil targetChanged) +\dots +\skipto protected +\printuntil signals: +\skipto void targetPainted +\printuntil ; +\skipto private +\printuntil }; + +The signal is generated by installing an event filter on the target \l{QWidget}: + +\quotefromfile video/snippets/painteventmonitor/painteventmonitor.cpp +\skipto PaintEventMonitor::eventFilter +\printuntil } + +A second class, FrequencyMonitor, is used to turn the stream of targetPainted() +signals into an instantaneous and an averaged frequency: + +\quotefromfile 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 video/snippets/frequencymonitor/frequencymonitordeclarative.cpp +\skipto FrequencyMonitor::qmlRegisterType +\printuntil } + +and its data is displayed by defining a QML item called FrequencyItem, like this: + +\quotefromfile video/snippets/frequencymonitor/qml/frequencymonitor/FrequencyItem.qml +\skipto import FrequencyMonitor +\printuntil id: root +\dots +\skipto function notify +\printuntil id: monitor +\skipto onAverageFrequencyChanged +\printuntil { +\skipto instantaneousFrequencyText +\printuntil /^\}/ + +The result looks like this: + +\image video-qml-paint-rate.png + + |