summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-11 13:22:54 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2013-11-15 08:24:15 +0200
commit999ffa01d20f75a457da62d41c0fabfc32e5e1bb (patch)
treec5267f6831d5ff61444f85b2110f7150e20d3451 /examples
parentbbb874d0591215164b2030db60dc9d6a95f4c8fe (diff)
Basic multiseries support
Task-number: QTRD-2548 Change-Id: Iba324c0e8be56f2b3f8f6c6a992883c134a51a9d Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com> Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/audiolevels/audiolevels.cpp4
-rw-r--r--examples/bars/graphmodifier.cpp50
-rw-r--r--examples/bars/graphmodifier.h5
-rw-r--r--examples/bars/main.cpp9
-rw-r--r--examples/customproxy/rainfallgraph.cpp4
-rw-r--r--examples/itemmodel/main.cpp4
-rw-r--r--examples/qmlbars/qml/qmlbars/data.qml33
-rw-r--r--examples/qmlbars/qml/qmlbars/main.qml19
-rw-r--r--examples/qmlscatter/qml/qmlscatter/data.qml7
-rw-r--r--examples/qmlscatter/qml/qmlscatter/main.qml3
-rw-r--r--examples/qmlsurface/qml/qmlsurface/data.qml14
-rw-r--r--examples/qmlsurface/qml/qmlsurface/main.qml22
-rw-r--r--examples/scatter/scatterdatamodifier.cpp8
-rw-r--r--examples/surface/surfacegraph.cpp124
-rw-r--r--examples/surface/surfacegraph.h9
15 files changed, 217 insertions, 98 deletions
diff --git a/examples/audiolevels/audiolevels.cpp b/examples/audiolevels/audiolevels.cpp
index 307240c5..4c64cbbe 100644
--- a/examples/audiolevels/audiolevels.cpp
+++ b/examples/audiolevels/audiolevels.cpp
@@ -23,6 +23,7 @@
#include <QtDataVisualization/q3dvalueaxis.h>
#include <QtDataVisualization/q3dscene.h>
#include <QtDataVisualization/q3dcamera.h>
+#include <QtDataVisualization/qbar3dseries.h>
#include <QAudioDeviceInfo>
#include <QAudioInput>
@@ -48,6 +49,7 @@ AudioLevels::AudioLevels(Q3DBars *graph, QObject *parent)
m_graph->scene()->activeCamera()->setCameraPosition(-25.0, 10.0, 190.0);
m_graph->setTheme(QDataVis::ThemeIsabelle);
m_graph->setBarType(QDataVis::MeshStyleBars);
+ m_graph->addSeries(new QBar3DSeries);
//! [0]
QAudioFormat formatAudio;
@@ -67,7 +69,7 @@ AudioLevels::AudioLevels(Q3DBars *graph, QObject *parent)
m_audioInput->setBufferSize(1024);
#endif
- m_device = new AudioLevelsIODevice(m_graph->activeDataProxy(), this);
+ m_device = new AudioLevelsIODevice(m_graph->seriesList().at(0)->dataProxy(), this);
m_device->open(QIODevice::WriteOnly);
m_audioInput->start(m_device);
diff --git a/examples/bars/graphmodifier.cpp b/examples/bars/graphmodifier.cpp
index 89c651ff..efd6aa6d 100644
--- a/examples/bars/graphmodifier.cpp
+++ b/examples/bars/graphmodifier.cpp
@@ -22,6 +22,7 @@
#include <QtDataVisualization/qbardataproxy.h>
#include <QtDataVisualization/q3dscene.h>
#include <QtDataVisualization/q3dcamera.h>
+#include <QtDataVisualization/qbar3dseries.h>
#include <QTime>
#include <QComboBox>
@@ -43,7 +44,8 @@ GraphModifier::GraphModifier(Q3DBars *bargraph)
m_temperatureAxis(new Q3DValueAxis),
m_yearAxis(new Q3DCategoryAxis),
m_monthAxis(new Q3DCategoryAxis),
- m_temperatureData(new QBarDataProxy),
+ m_primaryData(new QBarDataProxy),
+ m_secondaryData(new QBarDataProxy),
//! [1]
m_style(QDataVis::MeshStyleBevelBars),
m_smooth(false)
@@ -73,10 +75,15 @@ GraphModifier::GraphModifier(Q3DBars *bargraph)
m_graph->addAxis(m_monthAxis);
//! [3]
- m_temperatureData->setItemLabelFormat(QStringLiteral("@valueTitle for @colLabel @rowLabel: @valueLabel"));
+ QBar3DSeries *series = new QBar3DSeries(m_primaryData);
+ series->setItemLabelFormat(QStringLiteral("@valueTitle for @colLabel @rowLabel: @valueLabel"));
+ QBar3DSeries *series2 = new QBar3DSeries(m_secondaryData);
+ series2->setItemLabelFormat(QStringLiteral("@valueTitle for @colLabel @rowLabel: @valueLabel"));
+ series2->setVisible(false);
//! [4]
- m_graph->addDataProxy(m_temperatureData);
+ m_graph->addSeries(series);
+ m_graph->addSeries(series2);
//! [4]
changePresetCamera();
@@ -92,8 +99,6 @@ GraphModifier::~GraphModifier()
void GraphModifier::start()
{
//! [6]
- m_graph->setActiveDataProxy(m_temperatureData);
-
m_graph->setValueAxis(m_temperatureAxis);
m_graph->setRowAxis(m_yearAxis);
m_graph->setColumnAxis(m_monthAxis);
@@ -113,25 +118,40 @@ void GraphModifier::resetTemperatureData()
{-9.0, -15.2, -3.8, 2.6, 8.3, 15.9, 18.6, 14.9, 11.1, 5.3, 1.8, -0.2}, // 2011
{-8.7, -11.3, -2.3, 0.4, 7.5, 12.2, 16.4, 14.1, 9.2, 3.1, 0.3, -12.1} // 2012
};
+ static const qreal temp2[7][12] = {
+ {-8.7, -11.3, -2.3, 0.4, 7.5, 12.2, 16.4, 14.1, 9.2, 3.1, 0.3, -12.1}, // 2006
+ {-7.8, -8.8, -4.2, 0.7, 9.3, 13.2, 15.8, 15.5, 11.2, 0.6, 0.7, -8.4}, // 2007
+ {-6.8, -13.3, 0.2, 1.5, 7.9, 13.4, 16.1, 15.5, 8.2, 5.4, -2.6, -0.8}, // 2008
+ {-6.7, -11.7, -9.7, 3.3, 9.2, 14.0, 16.3, 17.8, 10.2, 2.1, -2.6, -0.3}, // 2009
+ {-4.2, -4.0, -4.6, 1.9, 7.3, 12.5, 15.0, 12.8, 7.6, 5.1, -0.9, -1.3}, // 2010
+ {-14.4, -12.1, -7.0, 2.3, 11.0, 12.6, 18.8, 13.8, 9.4, 3.9, -5.6, -13.0}, // 2011
+ {-9.0, -15.2, -3.8, 2.6, 8.3, 15.9, 18.6, 14.9, 11.1, 5.3, 1.8, -0.2} // 2012
+ };
- // Create data array
+ // Create data arrays
QBarDataArray *dataSet = new QBarDataArray;
+ QBarDataArray *dataSet2 = new QBarDataArray;
QBarDataRow *dataRow;
+ QBarDataRow *dataRow2;
dataSet->reserve(m_years.size());
for (int year = 0; year < m_years.size(); year++) {
// Create a data row
dataRow = new QBarDataRow(m_months.size());
+ dataRow2 = new QBarDataRow(m_months.size());
for (int month = 0; month < m_months.size(); month++) {
// Add data to the row
(*dataRow)[month].setValue(temp[year][month]);
+ (*dataRow2)[month].setValue(temp2[year][month]);
}
// Add the row to the set
dataSet->append(dataRow);
+ dataSet2->append(dataRow2);
}
// Add data to the graph (the graph assumes ownership of it)
- m_temperatureData->resetArray(dataSet, m_years, m_months);
+ m_primaryData->resetArray(dataSet, m_years, m_months);
+ m_secondaryData->resetArray(dataSet2, m_years, m_months);
//! [5]
}
@@ -220,12 +240,12 @@ void GraphModifier::rotateY(int rotation)
void GraphModifier::setBackgroundEnabled(int enabled)
{
- m_graph->setBackgroundVisible((bool)enabled);
+ m_graph->setBackgroundVisible(bool(enabled));
}
void GraphModifier::setGridEnabled(int enabled)
{
- m_graph->setGridVisible((bool)enabled);
+ m_graph->setGridVisible(bool(enabled));
}
void GraphModifier::setSmoothBars(int smooth)
@@ -233,3 +253,15 @@ void GraphModifier::setSmoothBars(int smooth)
m_smooth = bool(smooth);
m_graph->setBarType(m_style, m_smooth);
}
+
+void GraphModifier::setSeriesVisibility(int enabled)
+{
+ m_graph->seriesList().at(1)->setVisible(bool(enabled));
+ if (enabled) {
+ m_graph->setBarThickness(2.0);
+ m_graph->setBarSpacing(QSizeF(1.0, 3.0));
+ } else {
+ m_graph->setBarThickness(1.0);
+ m_graph->setBarSpacing(QSizeF(1.0, 1.0));
+ }
+}
diff --git a/examples/bars/graphmodifier.h b/examples/bars/graphmodifier.h
index 2e18ffd2..978558e2 100644
--- a/examples/bars/graphmodifier.h
+++ b/examples/bars/graphmodifier.h
@@ -20,6 +20,7 @@
#define GRAPHMODIFIER_H
#include <QtDataVisualization/q3dbars.h>
+#include <QtDataVisualization/qbardataproxy.h>
#include <QFont>
#include <QDebug>
@@ -45,6 +46,7 @@ public:
void setBackgroundEnabled(int enabled);
void setGridEnabled(int enabled);
void setSmoothBars(int smooth);
+ void setSeriesVisibility(int enabled);
void start();
public slots:
@@ -71,7 +73,8 @@ private:
Q3DValueAxis *m_temperatureAxis;
Q3DCategoryAxis *m_yearAxis;
Q3DCategoryAxis *m_monthAxis;
- QBarDataProxy *m_temperatureData;
+ QBarDataProxy *m_primaryData;
+ QBarDataProxy *m_secondaryData;
QDataVis::MeshStyle m_style;
bool m_smooth;
};
diff --git a/examples/bars/main.cpp b/examples/bars/main.cpp
index fc3737f6..ecd5d353 100644
--- a/examples/bars/main.cpp
+++ b/examples/bars/main.cpp
@@ -118,6 +118,10 @@ int main(int argc, char **argv)
gridCheckBox->setText(QStringLiteral("Show grid"));
gridCheckBox->setChecked(true);
+ QCheckBox *seriesCheckBox = new QCheckBox(widget);
+ seriesCheckBox->setText(QStringLiteral("Show second series"));
+ seriesCheckBox->setChecked(false);
+
//! [4]
QSlider *rotationSliderX = new QSlider(Qt::Horizontal, widget);
rotationSliderX->setTickInterval(30);
@@ -163,7 +167,8 @@ int main(int argc, char **argv)
vLayout->addWidget(cameraButton, 0, Qt::AlignTop);
vLayout->addWidget(backgroundCheckBox);
vLayout->addWidget(gridCheckBox);
- vLayout->addWidget(smoothCheckBox, 0, Qt::AlignTop);
+ vLayout->addWidget(smoothCheckBox);
+ vLayout->addWidget(seriesCheckBox);
vLayout->addWidget(new QLabel(QStringLiteral("Change bar style")));
vLayout->addWidget(barStyleList);
vLayout->addWidget(new QLabel(QStringLiteral("Change selection mode")));
@@ -197,6 +202,8 @@ int main(int argc, char **argv)
&GraphModifier::setGridEnabled);
QObject::connect(smoothCheckBox, &QCheckBox::stateChanged, modifier,
&GraphModifier::setSmoothBars);
+ QObject::connect(seriesCheckBox, &QCheckBox::stateChanged, modifier,
+ &GraphModifier::setSeriesVisibility);
QObject::connect(barStyleList, SIGNAL(currentIndexChanged(int)), modifier,
SLOT(changeStyle(int)));
diff --git a/examples/customproxy/rainfallgraph.cpp b/examples/customproxy/rainfallgraph.cpp
index 0327ecb9..36ab9786 100644
--- a/examples/customproxy/rainfallgraph.cpp
+++ b/examples/customproxy/rainfallgraph.cpp
@@ -21,6 +21,7 @@
#include <QtDataVisualization/q3dvalueaxis.h>
#include <QtDataVisualization/q3dscene.h>
#include <QtDataVisualization/q3dcamera.h>
+#include <QtDataVisualization/qbar3dseries.h>
#include <QGuiApplication>
#include <QFont>
#include <QDebug>
@@ -39,7 +40,8 @@ RainfallGraph::RainfallGraph(Q3DBars *rainfall)
m_columnCount = m_numericMonths.size();
m_proxy = new VariantBarDataProxy;
- m_graph->setActiveDataProxy(m_proxy);
+ QBar3DSeries *series = new QBar3DSeries(m_proxy);
+ m_graph->addSeries(series);
updateYearsList(2000, 2012);
diff --git a/examples/itemmodel/main.cpp b/examples/itemmodel/main.cpp
index 5964992d..90bac03b 100644
--- a/examples/itemmodel/main.cpp
+++ b/examples/itemmodel/main.cpp
@@ -22,6 +22,7 @@
#include <QtDataVisualization/q3dvalueaxis.h>
#include <QtDataVisualization/q3dscene.h>
#include <QtDataVisualization/q3dcamera.h>
+#include <QtDataVisualization/qbar3dseries.h>
#include <QApplication>
#include <QVBoxLayout>
@@ -268,7 +269,8 @@ int main(int argc, char **argv)
QItemModelBarDataMapping *mapping = new QItemModelBarDataMapping;
mapping->setUseModelCategories(true);
QItemModelBarDataProxy *proxy = new QItemModelBarDataProxy(tableWidget->model(), mapping);
- graph->setActiveDataProxy(proxy);
+ QBar3DSeries *series = new QBar3DSeries(proxy);
+ graph->addSeries(series);
//! [2]
//! [3]
diff --git a/examples/qmlbars/qml/qmlbars/data.qml b/examples/qmlbars/qml/qmlbars/data.qml
index 210eedde..522926e8 100644
--- a/examples/qmlbars/qml/qmlbars/data.qml
+++ b/examples/qmlbars/qml/qmlbars/data.qml
@@ -20,9 +20,13 @@ import QtQuick 2.1
import QtDataVisualization 1.0
Item {
- property alias mapping: valueMapping
property alias model: dataModel
+ property alias mapping: valueMapping
property alias proxy: modelProxy
+ property alias series: barSeries
+ property alias secondaryMapping: secondaryMapping
+ property alias secondaryProxy: secondaryProxy
+ property alias secondarySeries: secondarySeries
//! [1]
BarDataMapping {
@@ -39,6 +43,33 @@ Item {
itemModel: dataModel
}
//! [2]
+
+ BarDataMapping {
+ id: secondaryMapping
+ rowRole: "year"
+ columnRole: "month"
+ valueRole: "income"
+ }
+
+ ItemModelBarDataProxy {
+ id: secondaryProxy
+ activeMapping: secondaryMapping
+ itemModel: dataModel
+ }
+
+ Bar3DSeries {
+ id: barSeries
+ dataProxy: modelProxy
+ itemLabelFormat: "@valueTitle for @colLabel, @rowLabel: @valueLabel"
+ }
+
+ Bar3DSeries {
+ id: secondarySeries
+ visible: false
+ dataProxy: secondaryProxy
+ itemLabelFormat: "@valueTitle for @colLabel, @rowLabel: @valueLabel"
+ }
+
//! [0]
ListModel {
id: dataModel
diff --git a/examples/qmlbars/qml/qmlbars/main.qml b/examples/qmlbars/qml/qmlbars/main.qml
index db28d569..4346f392 100644
--- a/examples/qmlbars/qml/qmlbars/main.qml
+++ b/examples/qmlbars/qml/qmlbars/main.qml
@@ -50,14 +50,13 @@ Item {
font.pointSize: 35
theme: AbstractGraph3D.ThemeRetro
labelStyle: AbstractGraph3D.LabelStyleFromTheme
- dataProxy: graphData.proxy
barThickness: 0.5
barSpacing: Qt.size(0.5, 0.5)
barSpacingRelative: false
- scene.activeCamera.cameraPreset: AbstractGraph3D.CameraPresetRight
+ scene.activeCamera.cameraPreset: AbstractGraph3D.CameraPresetIsometricLeftHigh
columnAxis: graphAxes.column
valueAxis: graphAxes.expenses
- itemLabelFormat: "@valueTitle for @colLabel, @rowLabel: @valueLabel"
+ seriesList: [graphData.series, graphData.secondarySeries]
onSelectedBarChanged: {
// Set tableView current row to selected bar
@@ -93,12 +92,19 @@ Item {
text: "Show Income"
//! [0]
onClicked: {
- if (graphData.mapping.valueRole === "expenses") {
+ if (graphData.mapping.valueRole === "expenses" && !graphData.secondarySeries.visible) {
+ // Change mapping to change series data
graphData.mapping.valueRole = "income"
+ text = "Show Both"
+ testGraph.valueAxis = graphAxes.income
+ } else if (graphData.mapping.valueRole === "income"){
+ // Show both data set in separate series
+ graphData.secondarySeries.visible = true
+ graphData.mapping.valueRole = "expenses"
text = "Show Expenses"
testGraph.valueAxis = graphAxes.income
} else {
- graphData.mapping.valueRole = "expenses"
+ graphData.secondarySeries.visible = false
text = "Show Income"
testGraph.valueAxis = graphAxes.expenses
}
@@ -134,12 +140,15 @@ Item {
if (testGraph.rowAxis.max !== 6) {
text = "Show 2010 - 2012"
graphData.mapping.autoRowCategories = true
+ graphData.secondaryMapping.autoRowCategories = true
} else {
text = "Show all years"
// Explicitly defining row categories, since we do not want to show data for
// all years in the model, just for the selected ones.
graphData.mapping.autoRowCategories = false
+ graphData.secondaryMapping.autoRowCategories = false
graphData.mapping.rowCategories = ["2010", "2011", "2012"]
+ graphData.secondaryMapping.rowCategories = ["2010", "2011", "2012"]
}
}
//! [1]
diff --git a/examples/qmlscatter/qml/qmlscatter/data.qml b/examples/qmlscatter/qml/qmlscatter/data.qml
index 4ad9d7fc..74993135 100644
--- a/examples/qmlscatter/qml/qmlscatter/data.qml
+++ b/examples/qmlscatter/qml/qmlscatter/data.qml
@@ -22,6 +22,7 @@ import QtDataVisualization 1.0
Item {
//! [3]
property alias proxy: modelProxy
+ property alias series: scatterSeries
//! [3]
//! [1]
@@ -41,6 +42,12 @@ Item {
}
//! [2]
+ Scatter3DSeries {
+ id: scatterSeries
+ dataProxy: modelProxy
+ itemLabelFormat: "X:@xLabel Y:@yLabel Z:@zLabel"
+ }
+
//! [0]
ListModel {
id: dataModel
diff --git a/examples/qmlscatter/qml/qmlscatter/main.qml b/examples/qmlscatter/qml/qmlscatter/main.qml
index 7fd4ec84..1e80b52a 100644
--- a/examples/qmlscatter/qml/qmlscatter/main.qml
+++ b/examples/qmlscatter/qml/qmlscatter/main.qml
@@ -57,10 +57,9 @@ Item {
shadowQuality: AbstractGraph3D.ShadowQualitySoftLow
//! [3]
//! [5]
- dataProxy: graphData.proxy
+ seriesList: [graphData.series]
//! [5]
//! [6]
- itemLabelFormat: "X:@xLabel Y:@yLabel Z:@zLabel"
axisX.segmentCount: 3
axisX.subSegmentCount: 2
axisX.labelFormat: "%.2f"
diff --git a/examples/qmlsurface/qml/qmlsurface/data.qml b/examples/qmlsurface/qml/qmlsurface/data.qml
index e5678669..36c7671a 100644
--- a/examples/qmlsurface/qml/qmlsurface/data.qml
+++ b/examples/qmlsurface/qml/qmlsurface/data.qml
@@ -22,8 +22,8 @@ import QtDataVisualization 1.0
Item {
property alias mapping: surfaceMapping
property alias model: dataModel
- property alias proxy: modelProxy
- property alias heightProxy: heightMapProxy
+ property alias series: surfaceSeries
+ property alias heightSeries: heightSeries
//! [0]
HeightMapSurfaceDataProxy {
@@ -54,6 +54,16 @@ Item {
}
//! [3]
+ Surface3DSeries {
+ id: surfaceSeries
+ dataProxy: modelProxy
+ }
+
+ Surface3DSeries {
+ id: heightSeries
+ dataProxy: heightMapProxy
+ }
+
//! [1]
ListModel {
id: dataModel
diff --git a/examples/qmlsurface/qml/qmlsurface/main.qml b/examples/qmlsurface/qml/qmlsurface/main.qml
index 600d75c1..f91b6a76 100644
--- a/examples/qmlsurface/qml/qmlsurface/main.qml
+++ b/examples/qmlsurface/qml/qmlsurface/main.qml
@@ -40,7 +40,7 @@ Item {
ColorGradient {
id: surfaceGradient
ColorGradientStop { position: 0.0; color: "darkslategray" }
- ColorGradientStop { id: middleGradient; position: 0.55; color: "peru" }
+ ColorGradientStop { id: middleGradient; position: 0.25; color: "peru" }
ColorGradientStop { position: 1.0; color: "red" }
}
//! [0]
@@ -57,9 +57,9 @@ Item {
font.family: "STCaiyun"
font.pointSize: 35
scene.activeCamera.cameraPreset: AbstractGraph3D.CameraPresetIsometricLeft
- dataProxy: surfaceData.heightProxy
+ seriesList: [surfaceData.series]
axisY.min: 0.0
- axisY.max: 250.0
+ axisY.max: 500.0
axisX.segmentCount: 10
axisX.subSegmentCount: 2
axisX.labelFormat: "%i"
@@ -109,11 +109,13 @@ Item {
width: surfaceGridToggle.width
text: "Hide Surface"
onClicked: {
- if (surfaceplot.surfaceVisible === true) {
- surfaceplot.surfaceVisible = false;
+ if (surfaceplot.seriesList[0].visible === true) {
+ surfaceData.series.visible = false;
+ surfaceData.heightSeries.visible = false;
text = "Show Surface"
} else {
- surfaceplot.surfaceVisible = true;
+ surfaceData.series.visible = true;
+ surfaceData.heightSeries.visible = true;
text = "Hide Surface"
}
}
@@ -168,20 +170,20 @@ Item {
}
NewButton {
- id: proxyToggle
+ id: seriesToggle
anchors.top: gridToggle.bottom
width: gridToggle.width
text: "Switch to Item Model Proxy"
//! [3]
onClicked: {
- if (surfaceplot.dataProxy === surfaceData.heightProxy) {
+ if (surfaceplot.seriesList[0] === surfaceData.heightSeries) {
surfaceplot.axisY.max = 500.0
- surfaceplot.dataProxy = surfaceData.proxy
+ surfaceplot.seriesList = [surfaceData.series]
middleGradient.position = 0.25
text = "Switch to Height Map Proxy"
} else {
surfaceplot.axisY.max = 250.0
- surfaceplot.dataProxy = surfaceData.heightProxy
+ surfaceplot.seriesList = [surfaceData.heightSeries]
middleGradient.position = 0.55
text = "Switch to Item Model Proxy"
}
diff --git a/examples/scatter/scatterdatamodifier.cpp b/examples/scatter/scatterdatamodifier.cpp
index ce5a1bd7..1bdd089d 100644
--- a/examples/scatter/scatterdatamodifier.cpp
+++ b/examples/scatter/scatterdatamodifier.cpp
@@ -21,6 +21,7 @@
#include <QtDataVisualization/q3dvalueaxis.h>
#include <QtDataVisualization/q3dscene.h>
#include <QtDataVisualization/q3dcamera.h>
+#include <QtDataVisualization/qscatter3dseries.h>
#include <qmath.h>
using namespace QtDataVisualization;
@@ -52,8 +53,9 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter)
//! [2]
QScatterDataProxy *proxy = new QScatterDataProxy;
- proxy->setItemLabelFormat("@xTitle: @xLabel @yTitle: @yLabel @zTitle: @zLabel");
- m_graph->setActiveDataProxy(proxy);
+ QScatter3DSeries *series = new QScatter3DSeries(proxy);
+ series->setItemLabelFormat("@xTitle: @xLabel @yTitle: @yLabel @zTitle: @zLabel");
+ m_graph->addSeries(series);
//! [2]
changeLabelStyle();
@@ -107,7 +109,7 @@ void ScatterDataModifier::addData()
#endif
//! [7]
- m_graph->activeDataProxy()->resetArray(dataArray);
+ m_graph->seriesList().at(0)->dataProxy()->resetArray(dataArray);
//! [7]
}
diff --git a/examples/surface/surfacegraph.cpp b/examples/surface/surfacegraph.cpp
index bb07cb96..f5a2e00b 100644
--- a/examples/surface/surfacegraph.cpp
+++ b/examples/surface/surfacegraph.cpp
@@ -40,13 +40,15 @@ SurfaceGraph::SurfaceGraph(Q3DSurface *surface)
m_graph->setLabelStyle(QDataVis::LabelStyleFromTheme);
//! [0]
- sqrtSinProxy = new QSurfaceDataProxy();
+ m_sqrtSinProxy = new QSurfaceDataProxy();
+ m_sqrtSinSeries = new QSurface3DSeries(m_sqrtSinProxy);
//! [0]
fillSqrtSinProxy();
//! [2]
QImage heightMapImage(":/maps/mountain");
m_heightMapProxy = new QHeightMapSurfaceDataProxy(heightMapImage);
+ m_heightMapSeries = new QSurface3DSeries(m_heightMapProxy);
m_heightMapProxy->setValueRanges(34.0, 40.0, 18.0, 24.0);
//! [2]
m_heightMapWidth = heightMapImage.width();
@@ -79,70 +81,76 @@ void SurfaceGraph::fillSqrtSinProxy()
*dataArray << newRow;
}
- sqrtSinProxy->resetArray(dataArray);
+ m_sqrtSinProxy->resetArray(dataArray);
}
//! [1]
-void SurfaceGraph::enableSqrtSinModel()
+void SurfaceGraph::enableSqrtSinModel(bool enable)
{
- //! [3]
- m_graph->setSurfaceGridEnabled(true);
- m_graph->setSmoothSurfaceEnabled(false);
-
- m_graph->axisX()->setLabelFormat("%.2f");
- m_graph->axisZ()->setLabelFormat("%.2f");
- m_graph->axisX()->setRange(sampleMin, sampleMax);
- m_graph->axisY()->setRange(0.0, 2.0);
- m_graph->axisZ()->setRange(sampleMin, sampleMax);
-
- m_graph->setActiveDataProxy(sqrtSinProxy);
- //! [3]
-
- // Reset range sliders for Sqrt&Sin
- m_rangeMinX = sampleMin;
- m_rangeMinZ = sampleMin;
- m_stepX = (sampleMax - sampleMin) / qreal(sampleCountX - 1);
- m_stepZ = (sampleMax - sampleMin) / qreal(sampleCountZ - 1);
- m_axisMinSliderX->setMaximum(sampleCountX - 2);
- m_axisMinSliderX->setValue(0);
- m_axisMaxSliderX->setMaximum(sampleCountX - 1);
- m_axisMaxSliderX->setValue(sampleCountX - 1);
- m_axisMinSliderZ->setMaximum(sampleCountZ - 2);
- m_axisMinSliderZ->setValue(0);
- m_axisMaxSliderZ->setMaximum(sampleCountZ - 1);
- m_axisMaxSliderZ->setValue(sampleCountZ - 1);
+ if (enable) {
+ //! [3]
+ m_graph->setSurfaceGridEnabled(true);
+ m_graph->setSmoothSurfaceEnabled(false);
+
+ m_graph->axisX()->setLabelFormat("%.2f");
+ m_graph->axisZ()->setLabelFormat("%.2f");
+ m_graph->axisX()->setRange(sampleMin, sampleMax);
+ m_graph->axisY()->setRange(0.0, 2.0);
+ m_graph->axisZ()->setRange(sampleMin, sampleMax);
+
+ m_graph->removeSeries(m_heightMapSeries);
+ m_graph->addSeries(m_sqrtSinSeries);
+ //! [3]
+
+ // Reset range sliders for Sqrt&Sin
+ m_rangeMinX = sampleMin;
+ m_rangeMinZ = sampleMin;
+ m_stepX = (sampleMax - sampleMin) / qreal(sampleCountX - 1);
+ m_stepZ = (sampleMax - sampleMin) / qreal(sampleCountZ - 1);
+ m_axisMinSliderX->setMaximum(sampleCountX - 2);
+ m_axisMinSliderX->setValue(0);
+ m_axisMaxSliderX->setMaximum(sampleCountX - 1);
+ m_axisMaxSliderX->setValue(sampleCountX - 1);
+ m_axisMinSliderZ->setMaximum(sampleCountZ - 2);
+ m_axisMinSliderZ->setValue(0);
+ m_axisMaxSliderZ->setMaximum(sampleCountZ - 1);
+ m_axisMaxSliderZ->setValue(sampleCountZ - 1);
+ }
}
-void SurfaceGraph::enableHeightMapModel()
+void SurfaceGraph::enableHeightMapModel(bool enable)
{
- //! [4]
- m_graph->setSurfaceGridEnabled(false);
- m_graph->setSmoothSurfaceEnabled(true);
-
- m_graph->axisX()->setLabelFormat("%.1f N");
- m_graph->axisZ()->setLabelFormat("%.1f E");
- m_graph->axisX()->setRange(34.0, 40.0);
- m_graph->axisY()->setAutoAdjustRange(true);
- m_graph->axisZ()->setRange(18.0, 24.0);
-
- m_graph->setActiveDataProxy(m_heightMapProxy);
- //! [4]
-
- // Reset range sliders for height map
- int mapGridCountX = m_heightMapWidth / heightMapGridStepX;
- int mapGridCountZ = m_heightMapHeight / heightMapGridStepZ;
- m_rangeMinX = 34.0;
- m_rangeMinZ = 18.0;
- m_stepX = 6.0 / qreal(mapGridCountX - 1);
- m_stepZ = 6.0 / qreal(mapGridCountZ - 1);
- m_axisMinSliderX->setMaximum(mapGridCountX - 2);
- m_axisMinSliderX->setValue(0);
- m_axisMaxSliderX->setMaximum(mapGridCountX - 1);
- m_axisMaxSliderX->setValue(mapGridCountX - 1);
- m_axisMinSliderZ->setMaximum(mapGridCountZ - 2);
- m_axisMinSliderZ->setValue(0);
- m_axisMaxSliderZ->setMaximum(mapGridCountZ - 1);
- m_axisMaxSliderZ->setValue(mapGridCountZ - 1);
+ if (enable) {
+ //! [4]
+ m_graph->setSurfaceGridEnabled(false);
+ m_graph->setSmoothSurfaceEnabled(true);
+
+ m_graph->axisX()->setLabelFormat("%.1f N");
+ m_graph->axisZ()->setLabelFormat("%.1f E");
+ m_graph->axisX()->setRange(34.0, 40.0);
+ m_graph->axisY()->setAutoAdjustRange(true);
+ m_graph->axisZ()->setRange(18.0, 24.0);
+
+ m_graph->removeSeries(m_sqrtSinSeries);
+ m_graph->addSeries(m_heightMapSeries);
+ //! [4]
+
+ // Reset range sliders for height map
+ int mapGridCountX = m_heightMapWidth / heightMapGridStepX;
+ int mapGridCountZ = m_heightMapHeight / heightMapGridStepZ;
+ m_rangeMinX = 34.0;
+ m_rangeMinZ = 18.0;
+ m_stepX = 6.0 / qreal(mapGridCountX - 1);
+ m_stepZ = 6.0 / qreal(mapGridCountZ - 1);
+ m_axisMinSliderX->setMaximum(mapGridCountX - 2);
+ m_axisMinSliderX->setValue(0);
+ m_axisMaxSliderX->setMaximum(mapGridCountX - 1);
+ m_axisMaxSliderX->setValue(mapGridCountX - 1);
+ m_axisMinSliderZ->setMaximum(mapGridCountZ - 2);
+ m_axisMinSliderZ->setValue(0);
+ m_axisMaxSliderZ->setMaximum(mapGridCountZ - 1);
+ m_axisMaxSliderZ->setValue(mapGridCountZ - 1);
+ }
}
void SurfaceGraph::adjustXMin(int min)
diff --git a/examples/surface/surfacegraph.h b/examples/surface/surfacegraph.h
index ff0e5fc4..92b06e54 100644
--- a/examples/surface/surfacegraph.h
+++ b/examples/surface/surfacegraph.h
@@ -22,6 +22,7 @@
#include <QtDataVisualization/Q3DSurface>
#include <QtDataVisualization/QSurfaceDataProxy>
#include <QtDataVisualization/QHeightMapSurfaceDataProxy>
+#include <QtDataVisualization/QSurface3DSeries>
#include <QtWidgets/QSlider>
using namespace QtDataVisualization;
@@ -33,8 +34,8 @@ public:
explicit SurfaceGraph(Q3DSurface *surface);
~SurfaceGraph();
- void enableHeightMapModel();
- void enableSqrtSinModel();
+ void enableHeightMapModel(bool enable);
+ void enableSqrtSinModel(bool enable);
//! [0]
void toggleModeNone() { m_graph->setSelectionMode(QDataVis::SelectionNone); }
@@ -64,7 +65,9 @@ public slots:
private:
Q3DSurface *m_graph;
QHeightMapSurfaceDataProxy *m_heightMapProxy;
- QSurfaceDataProxy *sqrtSinProxy;
+ QSurfaceDataProxy *m_sqrtSinProxy;
+ QSurface3DSeries *m_heightMapSeries;
+ QSurface3DSeries *m_sqrtSinSeries;
QSlider *m_axisMinSliderX;
QSlider *m_axisMaxSliderX;