diff options
author | Pasi Petäjäjärvi <pasi.petajajarvi@digia.com> | 2014-05-12 14:53:31 +0300 |
---|---|---|
committer | Pasi Petäjäjärvi <pasi.petajajarvi@digia.com> | 2014-05-12 18:07:27 +0300 |
commit | 970e4ef386ea26dd9f475ae17d51aff98970308d (patch) | |
tree | 04fcc02f69f9b8ef173c8274f97a2449c45cb638 /basicsuite | |
parent | 3b2a2cf79af43aafebdd7646d897d66de0eab4ab (diff) |
Add Qt Data Visualization demo
Task-number: QTEE-526
Change-Id: Ifcb729236a73bb04951881bfc6d7d28580cde6aa
Reviewed-by: Kalle Viironen <kalle.viironen@digia.com>
Diffstat (limited to 'basicsuite')
-rw-r--r-- | basicsuite/basicsuite.pro | 4 | ||||
-rw-r--r-- | basicsuite/enterprise-qtdatavis3d/description.txt | 1 | ||||
-rw-r--r-- | basicsuite/enterprise-qtdatavis3d/enterprise-qtdatavis3d.pro | 16 | ||||
-rw-r--r-- | basicsuite/enterprise-qtdatavis3d/layer_1.png | bin | 0 -> 34540 bytes | |||
-rw-r--r-- | basicsuite/enterprise-qtdatavis3d/layer_2.png | bin | 0 -> 10553 bytes | |||
-rw-r--r-- | basicsuite/enterprise-qtdatavis3d/layer_3.png | bin | 0 -> 13022 bytes | |||
-rw-r--r-- | basicsuite/enterprise-qtdatavis3d/main.qml | 233 | ||||
-rw-r--r-- | basicsuite/enterprise-qtdatavis3d/preview_l.jpg | bin | 0 -> 30360 bytes | |||
-rw-r--r-- | basicsuite/enterprise-qtdatavis3d/title.txt | 1 |
9 files changed, 255 insertions, 0 deletions
diff --git a/basicsuite/basicsuite.pro b/basicsuite/basicsuite.pro index c098e1f..49d1123 100644 --- a/basicsuite/basicsuite.pro +++ b/basicsuite/basicsuite.pro @@ -6,3 +6,7 @@ qtHaveModule(multimedia) { SUBDIRS += qt5-everywhere \ camera } + +qtHaveModule(datavisualization) { + SUBDIRS += enterprise-qtdatavis3d +} diff --git a/basicsuite/enterprise-qtdatavis3d/description.txt b/basicsuite/enterprise-qtdatavis3d/description.txt new file mode 100644 index 0000000..fbec419 --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/description.txt @@ -0,0 +1 @@ +Shows how to make a 3D surface plot, displaying three layers from three different height map images using Surface3D with Qt Quick 2. diff --git a/basicsuite/enterprise-qtdatavis3d/enterprise-qtdatavis3d.pro b/basicsuite/enterprise-qtdatavis3d/enterprise-qtdatavis3d.pro new file mode 100644 index 0000000..6f2feac --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/enterprise-qtdatavis3d.pro @@ -0,0 +1,16 @@ +TARGET = enterprise-qtdatavis3d + +include(../shared/shared.pri) +b2qtdemo_deploy_defaults() + +QT += datavisualization + +content.files = \ + *.qml \ + *.png + +content.path = $$DESTPATH + +OTHER_FILES += $${content.files} + +INSTALLS += target content diff --git a/basicsuite/enterprise-qtdatavis3d/layer_1.png b/basicsuite/enterprise-qtdatavis3d/layer_1.png Binary files differnew file mode 100644 index 0000000..9138c71 --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/layer_1.png diff --git a/basicsuite/enterprise-qtdatavis3d/layer_2.png b/basicsuite/enterprise-qtdatavis3d/layer_2.png Binary files differnew file mode 100644 index 0000000..61631ae --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/layer_2.png diff --git a/basicsuite/enterprise-qtdatavis3d/layer_3.png b/basicsuite/enterprise-qtdatavis3d/layer_3.png Binary files differnew file mode 100644 index 0000000..796df64 --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/layer_3.png diff --git a/basicsuite/enterprise-qtdatavis3d/main.qml b/basicsuite/enterprise-qtdatavis3d/main.qml new file mode 100644 index 0000000..417ade0 --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/main.qml @@ -0,0 +1,233 @@ +/**************************************************************************** +** +** 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 +** +****************************************************************************/ + +import QtQuick 2.1 +import QtQuick.Layouts 1.0 +import QtQuick.Controls 1.0 +import QtDataVisualization 1.0 +import "." + +import QtQuick.Enterprise.Controls 1.1 +import QtQuick.Enterprise.Controls.Styles 1.1 + +Item { + id: mainview + + function toPixels(percentage) { + return percentage * Math.min(mainview.width, mainview.height); + } + + Item { + id: surfaceView + width: mainview.width - buttonLayout.width + height: mainview.height + anchors.right: mainview.right; + + ColorGradient { + id: layerOneGradient + ColorGradientStop { position: 0.0; color: "black" } + ColorGradientStop { position: 0.31; color: "tan" } + ColorGradientStop { position: 0.32; color: "green" } + ColorGradientStop { position: 0.40; color: "darkslategray" } + ColorGradientStop { position: 1.0; color: "white" } + } + + ColorGradient { + id: layerTwoGradient + ColorGradientStop { position: 0.315; color: "blue" } + ColorGradientStop { position: 0.33; color: "white" } + } + + ColorGradient { + id: layerThreeGradient + ColorGradientStop { position: 0.0; color: "red" } + ColorGradientStop { position: 0.15; color: "black" } + } + + Surface3D { + id: surfaceLayers + width: surfaceView.width + height: surfaceView.height + theme: Theme3D { + type: Theme3D.ThemeEbony + font.pointSize: 35 + colorStyle: Theme3D.ColorStyleRangeGradient + } + shadowQuality: AbstractGraph3D.ShadowQualityNone + selectionMode: AbstractGraph3D.SelectionRow | AbstractGraph3D.SelectionSlice + scene.activeCamera.cameraPreset: Camera3D.CameraPresetIsometricLeft + axisY.min: 20 + axisY.max: 200 + axisX.segmentCount: 5 + axisX.subSegmentCount: 2 + axisX.labelFormat: "%i" + axisZ.segmentCount: 5 + axisZ.subSegmentCount: 2 + axisZ.labelFormat: "%i" + axisY.segmentCount: 5 + axisY.subSegmentCount: 2 + axisY.labelFormat: "%i" + + Surface3DSeries { + id: layerOneSeries + baseGradient: layerOneGradient + HeightMapSurfaceDataProxy { + heightMapFile: "/data/user/qt/enterprise-qtdatavis3d/layer_1.png" + } + flatShadingEnabled: false + drawMode: Surface3DSeries.DrawSurface + visible: layerOneToggle.checked // bind to checkbox state + } + + Surface3DSeries { + id: layerTwoSeries + baseGradient: layerTwoGradient + HeightMapSurfaceDataProxy { + heightMapFile: "/data/user/qt/enterprise-qtdatavis3d/layer_2.png" + } + flatShadingEnabled: false + drawMode: Surface3DSeries.DrawSurface + visible: layerTwoToggle.checked // bind to checkbox state + } + + Surface3DSeries { + id: layerThreeSeries + baseGradient: layerThreeGradient + HeightMapSurfaceDataProxy { + heightMapFile: "/data/user/qt/enterprise-qtdatavis3d/layer_3.png" + } + flatShadingEnabled: false + drawMode: Surface3DSeries.DrawSurface + visible: layerThreeToggle.checked // bind to checkbox state + } + } + } + + ColumnLayout { + id: buttonLayout + anchors.top: parent.top + anchors.left: parent.left + anchors.bottom: parent.bottom + spacing: 0 + + GroupBox { + //title: "Layer Selection" + Layout.fillWidth: true + flat: true + Column { + spacing: 5 + ToggleButton { + id: layerOneToggle + text: "Ground\n Layer" + checked: true + width: toPixels(0.12) + height: width + } + + ToggleButton { + id: layerTwoToggle + text: "Sea\n Layer" + checked: true + width: toPixels(0.12) + height: width + } + + ToggleButton { + id: layerThreeToggle + text: "Tectonic\n Layer" + checked: true + width: toPixels(0.12) + height: width + } + } + } + + GroupBox { + //title: "Layer Style" + Layout.fillWidth: true + flat: true + Column { + spacing: 5 + ToggleButton { + id: layerOneGrid + text: "Ground\n as\n Grid" + width: toPixels(0.12) + height: width + onCheckedChanged: { + if (checked) + layerOneSeries.drawMode = Surface3DSeries.DrawWireframe + else + layerOneSeries.drawMode = Surface3DSeries.DrawSurface + } + } + + ToggleButton { + id: layerTwoGrid + text: "Sea\n as\n Grid" + width: toPixels(0.12) + height: width + onCheckedChanged: { + if (checked) + layerTwoSeries.drawMode = Surface3DSeries.DrawWireframe + else + layerTwoSeries.drawMode = Surface3DSeries.DrawSurface + } + } + + ToggleButton { + id: layerThreeGrid + text: "Tectonic\n as\n Grid" + width: toPixels(0.12) + height: width + onCheckedChanged: { + if (checked) + layerThreeSeries.drawMode = Surface3DSeries.DrawWireframe + else + layerThreeSeries.drawMode = Surface3DSeries.DrawSurface + } + } + } + } + + GroupBox { + Layout.fillWidth: true + flat: true + Column { + spacing: 5 + ToggleButton { + id: sliceButton + text: "Slice\n All\n Layers" + width: toPixels(0.12) + height: width + onClicked: { + if (surfaceLayers.selectionMode & AbstractGraph3D.SelectionMultiSeries) { + surfaceLayers.selectionMode = AbstractGraph3D.SelectionRow + | AbstractGraph3D.SelectionSlice + text = "Slice\n All\n Layers" + } else { + surfaceLayers.selectionMode = AbstractGraph3D.SelectionRow + | AbstractGraph3D.SelectionSlice + | AbstractGraph3D.SelectionMultiSeries + text = "Slice\n One\n Layer" + } + } + } + } + } + } +} diff --git a/basicsuite/enterprise-qtdatavis3d/preview_l.jpg b/basicsuite/enterprise-qtdatavis3d/preview_l.jpg Binary files differnew file mode 100644 index 0000000..ee3d50d --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/preview_l.jpg diff --git a/basicsuite/enterprise-qtdatavis3d/title.txt b/basicsuite/enterprise-qtdatavis3d/title.txt new file mode 100644 index 0000000..dff1441 --- /dev/null +++ b/basicsuite/enterprise-qtdatavis3d/title.txt @@ -0,0 +1 @@ +095. QtDatavisualization 3D - Surface Multiseries Example |