summaryrefslogtreecommitdiffstats
path: root/examples/datavisualization/qml3doscilloscope/doc/src/qml3doscilloscope.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/datavisualization/qml3doscilloscope/doc/src/qml3doscilloscope.qdoc')
-rw-r--r--examples/datavisualization/qml3doscilloscope/doc/src/qml3doscilloscope.qdoc125
1 files changed, 0 insertions, 125 deletions
diff --git a/examples/datavisualization/qml3doscilloscope/doc/src/qml3doscilloscope.qdoc b/examples/datavisualization/qml3doscilloscope/doc/src/qml3doscilloscope.qdoc
deleted file mode 100644
index a3b2f3f3..00000000
--- a/examples/datavisualization/qml3doscilloscope/doc/src/qml3doscilloscope.qdoc
+++ /dev/null
@@ -1,125 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and The Qt Company. For licensing terms
-** and conditions see https://www.qt.io/terms-conditions. For further
-** information use the contact form at https://www.qt.io/contact-us.
-**
-** GNU Free Documentation License Usage
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file. Please review the following information to ensure
-** the GNU Free Documentation License version 1.3 requirements
-** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-/*!
- \example qml3doscilloscope
- \title Qt Quick 2 Oscilloscope Example
- \ingroup qtdatavisualization_examples
- \brief Example of a hybrid C++ and QML application.
-
- The Qt Quick 2 oscilloscope example shows how to combine C++ and QML in an application,
- as well as showing data that changes realtime.
-
- \image qml3doscilloscope-example.png
-
- The interesting thing about this example is combining C++ and QML, so we'll concentrate on
- that and skip explaining the basic functionality - for
- more detailed QML example documentation, see \l{Qt Quick 2 Scatter Example}.
-
- \include examples-run.qdocinc
-
- \section1 Data Source in C++
-
- The item model based proxies are good for simple and/or static graphs, but to achieve
- best performance when displaying data changing in realtime, the basic proxies should be used.
- Those are not supported in QML, as the data items they store are not \l{QObject}s and
- cannot therefore be directly manipulated from QML code.
- To overcome this limitation, we implement a simple \c DataSource class in C++ to populate the
- data proxy of the series.
-
- The \c DataSource class provides three methods that can be called from QML:
-
- \snippet qml3doscilloscope/datasource.h 0
-
- The first method, \c generateData(), creates a cache of simulated oscilloscope data for us
- to display. The data is cached in a format accepted by QSurfaceDataProxy:
-
- \snippet qml3doscilloscope/datasource.cpp 0
-
- The second method, \c update(), copies one set of the cached data into another array, which we
- set to the data proxy of the series by calling QSurfaceDataProxy::resetArray().
- We reuse the same array if the array dimensions have not changed to minimize overhead:
-
- \snippet qml3doscilloscope/datasource.cpp 1
-
- \note Even though we are operating on the array pointer we have previously set to the proxy
- we still need to call QSurfaceDataProxy::resetArray() after changing the data in it to prompt
- the graph to render the data.
-
- To be able to access the \c DataSource methods from QML, we need to expose it. We do this by
- defining a context property in application main:
-
- \snippet qml3doscilloscope/main.cpp 0
-
- To make it possible to use QSurface3DSeries pointers as parameters on the
- \c DataSource class methods on all environments and builds, we need to make sure the meta
- type is registered:
-
- \snippet qml3doscilloscope/datasource.cpp 3
- \dots 0
- \snippet qml3doscilloscope/datasource.cpp 4
-
- \section1 QML
-
- In the QML codes, we define a Surface3D graph normally and give it a Surface3DSeries:
-
- \snippet qml3doscilloscope/qml/qml3doscilloscope/main.qml 0
-
- One interesting detail is that we don't specify a proxy for the Surface3DSeries we attach
- to the graph. This makes the series to utilize the default QSurfaceDataProxy.
-
- We also hide the item label with \l{Abstract3DSeries::itemLabelVisible}{itemLabelVisible}, since
- we want to display the selected item information in a \c Text element instead of a floating
- label above the selection pointer.
- This is done because the selection pointer moves around a lot as the data changes, which makes
- the regular selection label difficult to read.
-
- We initialize the \c DataSource cache when the graph is complete by calling a helper function
- \c generateData(), which calls the method with the same name on the \c DataSource:
-
- \snippet qml3doscilloscope/qml/qml3doscilloscope/main.qml 2
- \dots 4
- \snippet qml3doscilloscope/qml/qml3doscilloscope/main.qml 4
-
- To trigger the updates in data, we define a \c Timer item which calls the \c update() method on the \c
- DataSource at requested intervals. The label update is also triggered on each cycle:
-
- \snippet qml3doscilloscope/qml/qml3doscilloscope/main.qml 3
-
- \section1 Enabling Direct Rendering
-
- Since this application potentially deals with a lot of rapidly changing data, we use direct
- rendering mode for performance. To enable antialiasing in this mode the surface format of the application
- window needs to be changed, as the default format used by QQuickView doesn't support antialiasing.
- We use the utility function provided by Qt Data Visualization to change the surface format
- in \c main.cpp:
-
- \snippet qml3doscilloscope/main.cpp 1
- \dots 0
- \snippet qml3doscilloscope/main.cpp 2
-
-*/