diff options
author | Mika Salmela <mika.salmela@digia.com> | 2013-07-18 18:30:49 +0300 |
---|---|---|
committer | Mika Salmela <mika.salmela@digia.com> | 2013-07-18 18:32:40 +0300 |
commit | 2ba572295f102ad06ae95ec676c064909775011f (patch) | |
tree | ca09e78d1043e173a0c50ca0ba959ebd5fb5a66c /examples/surfacechart | |
parent | 2d4688233fbd551bae8f327215247985cd843958 (diff) |
Selectable surface grid and smoothnes.
Change-Id: Icc45643d9958733f8ff78824af9399806d8e1c0f
Reviewed-by: Mika Salmela <mika.salmela@digia.com>
Diffstat (limited to 'examples/surfacechart')
-rw-r--r-- | examples/surfacechart/chartmodifier.cpp | 67 | ||||
-rw-r--r-- | examples/surfacechart/chartmodifier.h | 62 | ||||
-rw-r--r-- | examples/surfacechart/main.cpp | 69 | ||||
-rw-r--r-- | examples/surfacechart/surfacechart.pro | 6 |
4 files changed, 194 insertions, 10 deletions
diff --git a/examples/surfacechart/chartmodifier.cpp b/examples/surfacechart/chartmodifier.cpp new file mode 100644 index 00000000..0c1980ab --- /dev/null +++ b/examples/surfacechart/chartmodifier.cpp @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the documentation of QtDataVis3D module. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "chartmodifier.h" + +#include <QDebug> + +QT_DATAVIS3D_USE_NAMESPACE + +ChartModifier::ChartModifier(Q3DSurface *chart) + : m_chart(chart) +{ +} + +ChartModifier::~ChartModifier() +{ + delete m_chart; +} + +void ChartModifier::toggleSmooth(bool enabled) +{ + qDebug() << "ChartModifier::toggleSmooth " << enabled; + m_chart->setSmoothSurface(enabled); +} + +void ChartModifier::toggleSurfaceGrid(bool enable) +{ + qDebug() << "ChartModifier::toggleSurfaceGrid" << enable; + m_chart->setSurfaceGrid(enable); +} diff --git a/examples/surfacechart/chartmodifier.h b/examples/surfacechart/chartmodifier.h new file mode 100644 index 00000000..e29699d8 --- /dev/null +++ b/examples/surfacechart/chartmodifier.h @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/legal +** +** This file is part of the documentation of QtDataVis3D module. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names +** of its contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef CHARTMODIFIER_H +#define CHARTMODIFIER_H + +#include <Q3DSurface> + +using namespace QtDataVis3D; + +class ChartModifier : public QObject +{ + Q_OBJECT +public: + explicit ChartModifier(Q3DSurface *chart); + ~ChartModifier(); + + void toggleSmooth(bool enabled); + void toggleSurfaceGrid(bool enable); + +private: + Q3DSurface *m_chart; +}; + +#endif // CHARTMODIFIER_H diff --git a/examples/surfacechart/main.cpp b/examples/surfacechart/main.cpp index b984f7f1..fdfa99a6 100644 --- a/examples/surfacechart/main.cpp +++ b/examples/surfacechart/main.cpp @@ -39,17 +39,69 @@ ****************************************************************************/ #include <Q3DSurface> +#include "chartmodifier.h" -#include <QGuiApplication> +#include <QApplication> +#include <QApplication> +#include <QWidget> +#include <QHBoxLayout> +#include <QVBoxLayout> +#include <QPushButton> +#include <QCheckBox> +#include <QSlider> +#include <QLabel> #include <QScreen> using namespace QtDataVis3D; int main(int argc, char *argv[]) { - QGuiApplication a(argc, argv); + QApplication app(argc, argv); - Q3DSurface surfaceChart; + QWidget *widget = new QWidget; + QHBoxLayout *hLayout = new QHBoxLayout(widget); + QVBoxLayout *vLayout = new QVBoxLayout(); + vLayout->setAlignment(Qt::AlignTop); + + Q3DSurface *surfaceChart = new Q3DSurface(); + QSize screenSize = surfaceChart->screen()->size(); + + QWidget *container = QWidget::createWindowContainer(surfaceChart); + container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 2)); + container->setMaximumSize(screenSize); + container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + container->setFocusPolicy(Qt::StrongFocus); + + widget->setWindowTitle(QStringLiteral("Surface tester")); + + hLayout->addWidget(container, 1); + hLayout->addLayout(vLayout); + + QPushButton *someButton = new QPushButton(widget); + someButton->setText(QStringLiteral("Press me")); + someButton->setEnabled(true); + + QCheckBox *smoothCB = new QCheckBox(widget); + smoothCB->setText(QStringLiteral("Smooth ")); + smoothCB->setChecked(surfaceChart->smoothSurface()); + + QCheckBox *surfaceGridCB = new QCheckBox(widget); + surfaceGridCB->setText(QStringLiteral("Surface Grid")); + surfaceGridCB->setChecked(true); + + // Add controls to the layout + vLayout->addWidget(smoothCB); + vLayout->addWidget(surfaceGridCB); + vLayout->addWidget(someButton); + + widget->show(); + + ChartModifier *modifier = new ChartModifier(surfaceChart); + + QObject::connect(smoothCB, &QCheckBox::stateChanged, + modifier, &ChartModifier::toggleSmooth); + QObject::connect(surfaceGridCB, &QCheckBox::stateChanged, + modifier, &ChartModifier::toggleSurfaceGrid); QList<qreal> lowList; lowList << 15.0 << 35.0 << 55.0 << 75.0 << 80.0 << 75.0 << 55.0 << 35.0 << 15.0; @@ -68,16 +120,15 @@ int main(int argc, char *argv[]) // lowList << 35.0 << 105.0 << 170.0 << 105.0 << 35.0; // lowList << 15.0 << 65.0 << 105.0 << 65.0 << 16.1; - surfaceChart.appendSeries(lowList); + surfaceChart->appendSeries(lowList); // QList<qreal> topList; // topList << 2.1 << 2.2; // surfaceChart.appendSeries(topList); - QSize screenSize = surfaceChart.screen()->size(); - surfaceChart.resize(screenSize.width() / 1.5, screenSize.height() / 1.5); - surfaceChart.setPosition(screenSize.width() / 6, screenSize.height() / 6); - surfaceChart.show(); +// surfaceChart.resize(screenSize.width() / 1.5, screenSize.height() / 1.5); +// surfaceChart.setPosition(screenSize.width() / 6, screenSize.height() / 6); +// surfaceChart.show(); - return a.exec(); + return app.exec(); } diff --git a/examples/surfacechart/surfacechart.pro b/examples/surfacechart/surfacechart.pro index 668b5195..79fd967d 100644 --- a/examples/surfacechart/surfacechart.pro +++ b/examples/surfacechart/surfacechart.pro @@ -2,6 +2,10 @@ error( "Couldn't find the examples.pri file!" ) } -SOURCES += main.cpp +SOURCES += main.cpp \ + chartmodifier.cpp INSTALLS += target + +HEADERS += \ + chartmodifier.h |