summaryrefslogtreecommitdiffstats
path: root/examples/datavisualization/scatter/doc/src/scatter.qdoc
diff options
context:
space:
mode:
Diffstat (limited to 'examples/datavisualization/scatter/doc/src/scatter.qdoc')
-rw-r--r--examples/datavisualization/scatter/doc/src/scatter.qdoc146
1 files changed, 146 insertions, 0 deletions
diff --git a/examples/datavisualization/scatter/doc/src/scatter.qdoc b/examples/datavisualization/scatter/doc/src/scatter.qdoc
new file mode 100644
index 00000000..91227184
--- /dev/null
+++ b/examples/datavisualization/scatter/doc/src/scatter.qdoc
@@ -0,0 +1,146 @@
+/****************************************************************************
+**
+** Copyright (C) 2014 Digia Plc
+** All rights reserved.
+** For any questions to Digia, please use contact form at http://qt.digia.com
+**
+** This file is part of the QtDataVisualization module.
+**
+** Licensees holding valid Qt Enterprise licenses may use this file in
+** accordance with the Qt Enterprise License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia.
+**
+** If you have questions regarding the use of this file, please use
+** contact form at http://qt.digia.com
+**
+****************************************************************************/
+
+/*!
+ \example scatter
+ \title Scatter Example
+ \ingroup qtdatavisualization_examples
+ \brief Using Q3DScatter in a widget application.
+
+ The scatter example shows how to make a simple 3D scatter graph using Q3DScatter and
+ combining the use of widgets for adjusting several adjustable qualities. The example shows
+ how to:
+
+ \list
+ \li Create an application with Q3DScatter and some widgets
+ \li Use QScatterDataProxy to set data to the graph
+ \li Adjust some graph properties using widget controls
+ \endlist
+
+ For instructions about how to interact with the graph, see \l{Qt Data Visualization Interacting with Data}{this page}.
+
+ \image scatter-example.png
+
+ \section1 Creating the application
+
+ First, in main.cpp, we create a QApplication, instantiate Q3DScatter, and a window container
+ for it:
+
+ \snippet ../examples/scatter/main.cpp 0
+
+ The call to QWidget::createWindowContainer is required, as all data visualization types
+ (Q3DBars, Q3DScatter, and Q3DSurface) inherit QWindow. Any class inheriting QWindow cannot be used
+ as a widget any other way.
+
+ Then we'll create horizontal and vertical layouts. We'll add the graph and the vertical
+ layout into the horizontal one:
+
+ \snippet ../examples/scatter/main.cpp 1
+
+ We're not using the vertical layout for anything yet, but we'll get back to it in
+ \l {Using widgets to control the graph}
+
+ Next, let's create another class to handle the data addition and other interaction with the
+ graph. Let's call it \c ScatterDataModifier (See \l {Setting up the graph} and
+ \l {Adding data to the graph} for details):
+
+ \snippet ../examples/scatter/main.cpp 2
+
+ The application main is done. We can show the graph and start the event loop:
+
+ \snippet ../examples/scatter/main.cpp 3
+
+ \section1 Setting up the graph
+
+ Let's set up some visual qualities for the graph in the constructor of the \c ScatterDataModifier
+ class we instantiated in the application main:
+
+ \snippet ../examples/scatter/scatterdatamodifier.cpp 0
+
+ None of these are required, but are used to override graph defaults. You can try how it looks
+ with the preset defaults by commenting the block above out.
+
+ Finally we create a QScatterDataProxy and the associated QScatter3DSeries. We set custom label format
+ and mesh smoothing for the series and add it to the graph:
+
+ \snippet ../examples/scatter/scatterdatamodifier.cpp 2
+
+ That concludes setting up the graph.
+
+ \section1 Adding data to the graph
+
+ The last thing we do in the \c ScatterDataModifier constructor is to add data to the graph:
+
+ \snippet ../examples/scatter/scatterdatamodifier.cpp 3
+
+ The actual data addition is done in \c addData() method. First we configure the axes:
+
+ \snippet ../examples/scatter/scatterdatamodifier.cpp 4
+
+ This could have been done in the constructor of \c {ScatterDataModifier}, but we added it here
+ to keep the constructor simpler and the axes configuration near the data.
+
+ Next we create a data array:
+
+ \snippet ../examples/scatter/scatterdatamodifier.cpp 5
+
+ and populate it:
+
+ \snippet ../examples/scatter/scatterdatamodifier.cpp 6
+
+ Finally we tell the proxy to start using the data we gave it:
+
+ \snippet ../examples/scatter/scatterdatamodifier.cpp 7
+
+ Now our graph has the data and is ready to be used. There isn't much interaction yet, though,
+ so let's continue by adding some widgets to play with.
+
+ \section1 Using widgets to control the graph
+
+ First, back in the application main, we'll create some widgets:
+
+ \snippet ../examples/scatter/main.cpp 4
+
+ And add them to the vertical layout we created earlier:
+
+ \snippet ../examples/scatter/main.cpp 5
+
+ Now, let's connect them to methods in ScatterDataModifier:
+
+ \snippet ../examples/scatter/main.cpp 6
+
+ Here are the methods in ScatterDataModifier the signals were connected to:
+
+ \snippet ../examples/scatter/scatterdatamodifier.cpp 8
+
+ And so we have an application in which we can control:
+
+ \list
+ \li Label style
+ \li Camera preset
+ \li Background visibility
+ \li Grid visibility
+ \li Dot shading smoothness
+ \li Dot style
+ \li Theme
+ \li Shadow quality
+ \li Label font
+ \endlist
+
+ \section1 Example contents
+*/