diff options
Diffstat (limited to 'examples/datavisualization/surface/main.cpp')
-rw-r--r-- | examples/datavisualization/surface/main.cpp | 230 |
1 files changed, 0 insertions, 230 deletions
diff --git a/examples/datavisualization/surface/main.cpp b/examples/datavisualization/surface/main.cpp deleted file mode 100644 index 0cc48b42..00000000 --- a/examples/datavisualization/surface/main.cpp +++ /dev/null @@ -1,230 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Data Visualization module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL$ -** 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 General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 or (at your option) any later version -** approved by the KDE Free Qt Foundation. The licenses are as published by -** the Free Software Foundation and appearing in the file LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "surfacegraph.h" - -#include <QtWidgets/QApplication> -#include <QtWidgets/QWidget> -#include <QtWidgets/QHBoxLayout> -#include <QtWidgets/QVBoxLayout> -#include <QtWidgets/QPushButton> -#include <QtWidgets/QRadioButton> -#include <QtWidgets/QSlider> -#include <QtWidgets/QGroupBox> -#include <QtWidgets/QComboBox> -#include <QtWidgets/QLabel> -#include <QtWidgets/QMessageBox> -#include <QtGui/QPainter> -#include <QtGui/QScreen> - -int main(int argc, char **argv) -{ - //! [0] - QApplication app(argc, argv); - Q3DSurface *graph = new Q3DSurface(); - QWidget *container = QWidget::createWindowContainer(graph); - //! [0] - - if (!graph->hasContext()) { - QMessageBox msgBox; - msgBox.setText("Couldn't initialize the OpenGL context."); - msgBox.exec(); - return -1; - } - - QSize screenSize = graph->screen()->size(); - container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 1.6)); - container->setMaximumSize(screenSize); - container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - container->setFocusPolicy(Qt::StrongFocus); - - //! [1] - QWidget *widget = new QWidget; - QHBoxLayout *hLayout = new QHBoxLayout(widget); - QVBoxLayout *vLayout = new QVBoxLayout(); - hLayout->addWidget(container, 1); - hLayout->addLayout(vLayout); - vLayout->setAlignment(Qt::AlignTop); - //! [1] - - widget->setWindowTitle(QStringLiteral("Surface example")); - - QGroupBox *modelGroupBox = new QGroupBox(QStringLiteral("Model")); - - QRadioButton *sqrtSinModelRB = new QRadioButton(widget); - sqrtSinModelRB->setText(QStringLiteral("Sqrt && Sin")); - sqrtSinModelRB->setChecked(false); - - QRadioButton *heightMapModelRB = new QRadioButton(widget); - heightMapModelRB->setText(QStringLiteral("Height Map")); - heightMapModelRB->setChecked(false); - - QVBoxLayout *modelVBox = new QVBoxLayout; - modelVBox->addWidget(sqrtSinModelRB); - modelVBox->addWidget(heightMapModelRB); - modelGroupBox->setLayout(modelVBox); - - QGroupBox *selectionGroupBox = new QGroupBox(QStringLiteral("Selection Mode")); - - QRadioButton *modeNoneRB = new QRadioButton(widget); - modeNoneRB->setText(QStringLiteral("No selection")); - modeNoneRB->setChecked(false); - - QRadioButton *modeItemRB = new QRadioButton(widget); - modeItemRB->setText(QStringLiteral("Item")); - modeItemRB->setChecked(false); - - QRadioButton *modeSliceRowRB = new QRadioButton(widget); - modeSliceRowRB->setText(QStringLiteral("Row Slice")); - modeSliceRowRB->setChecked(false); - - QRadioButton *modeSliceColumnRB = new QRadioButton(widget); - modeSliceColumnRB->setText(QStringLiteral("Column Slice")); - modeSliceColumnRB->setChecked(false); - - QVBoxLayout *selectionVBox = new QVBoxLayout; - selectionVBox->addWidget(modeNoneRB); - selectionVBox->addWidget(modeItemRB); - selectionVBox->addWidget(modeSliceRowRB); - selectionVBox->addWidget(modeSliceColumnRB); - selectionGroupBox->setLayout(selectionVBox); - - QSlider *axisMinSliderX = new QSlider(Qt::Horizontal, widget); - axisMinSliderX->setMinimum(0); - axisMinSliderX->setTickInterval(1); - axisMinSliderX->setEnabled(true); - QSlider *axisMaxSliderX = new QSlider(Qt::Horizontal, widget); - axisMaxSliderX->setMinimum(1); - axisMaxSliderX->setTickInterval(1); - axisMaxSliderX->setEnabled(true); - QSlider *axisMinSliderZ = new QSlider(Qt::Horizontal, widget); - axisMinSliderZ->setMinimum(0); - axisMinSliderZ->setTickInterval(1); - axisMinSliderZ->setEnabled(true); - QSlider *axisMaxSliderZ = new QSlider(Qt::Horizontal, widget); - axisMaxSliderZ->setMinimum(1); - axisMaxSliderZ->setTickInterval(1); - axisMaxSliderZ->setEnabled(true); - - QComboBox *themeList = new QComboBox(widget); - themeList->addItem(QStringLiteral("Qt")); - themeList->addItem(QStringLiteral("Primary Colors")); - themeList->addItem(QStringLiteral("Digia")); - themeList->addItem(QStringLiteral("Stone Moss")); - themeList->addItem(QStringLiteral("Army Blue")); - themeList->addItem(QStringLiteral("Retro")); - themeList->addItem(QStringLiteral("Ebony")); - themeList->addItem(QStringLiteral("Isabelle")); - - QGroupBox *colorGroupBox = new QGroupBox(QStringLiteral("Custom gradient")); - - QLinearGradient grBtoY(0, 0, 1, 100); - grBtoY.setColorAt(1.0, Qt::black); - grBtoY.setColorAt(0.67, Qt::blue); - grBtoY.setColorAt(0.33, Qt::red); - grBtoY.setColorAt(0.0, Qt::yellow); - QPixmap pm(24, 100); - QPainter pmp(&pm); - pmp.setBrush(QBrush(grBtoY)); - pmp.setPen(Qt::NoPen); - pmp.drawRect(0, 0, 24, 100); - QPushButton *gradientBtoYPB = new QPushButton(widget); - gradientBtoYPB->setIcon(QIcon(pm)); - gradientBtoYPB->setIconSize(QSize(24, 100)); - - QLinearGradient grGtoR(0, 0, 1, 100); - grGtoR.setColorAt(1.0, Qt::darkGreen); - grGtoR.setColorAt(0.5, Qt::yellow); - grGtoR.setColorAt(0.2, Qt::red); - grGtoR.setColorAt(0.0, Qt::darkRed); - pmp.setBrush(QBrush(grGtoR)); - pmp.drawRect(0, 0, 24, 100); - QPushButton *gradientGtoRPB = new QPushButton(widget); - gradientGtoRPB->setIcon(QIcon(pm)); - gradientGtoRPB->setIconSize(QSize(24, 100)); - - QHBoxLayout *colorHBox = new QHBoxLayout; - colorHBox->addWidget(gradientBtoYPB); - colorHBox->addWidget(gradientGtoRPB); - colorGroupBox->setLayout(colorHBox); - - vLayout->addWidget(modelGroupBox); - vLayout->addWidget(selectionGroupBox); - vLayout->addWidget(new QLabel(QStringLiteral("Column range"))); - vLayout->addWidget(axisMinSliderX); - vLayout->addWidget(axisMaxSliderX); - vLayout->addWidget(new QLabel(QStringLiteral("Row range"))); - vLayout->addWidget(axisMinSliderZ); - vLayout->addWidget(axisMaxSliderZ); - vLayout->addWidget(new QLabel(QStringLiteral("Theme"))); - vLayout->addWidget(themeList); - vLayout->addWidget(colorGroupBox); - - widget->show(); - - SurfaceGraph *modifier = new SurfaceGraph(graph); - - QObject::connect(heightMapModelRB, &QRadioButton::toggled, - modifier, &SurfaceGraph::enableHeightMapModel); - QObject::connect(sqrtSinModelRB, &QRadioButton::toggled, - modifier, &SurfaceGraph::enableSqrtSinModel); - QObject::connect(modeNoneRB, &QRadioButton::toggled, - modifier, &SurfaceGraph::toggleModeNone); - QObject::connect(modeItemRB, &QRadioButton::toggled, - modifier, &SurfaceGraph::toggleModeItem); - QObject::connect(modeSliceRowRB, &QRadioButton::toggled, - modifier, &SurfaceGraph::toggleModeSliceRow); - QObject::connect(modeSliceColumnRB, &QRadioButton::toggled, - modifier, &SurfaceGraph::toggleModeSliceColumn); - QObject::connect(axisMinSliderX, &QSlider::valueChanged, - modifier, &SurfaceGraph::adjustXMin); - QObject::connect(axisMaxSliderX, &QSlider::valueChanged, - modifier, &SurfaceGraph::adjustXMax); - QObject::connect(axisMinSliderZ, &QSlider::valueChanged, - modifier, &SurfaceGraph::adjustZMin); - QObject::connect(axisMaxSliderZ, &QSlider::valueChanged, - modifier, &SurfaceGraph::adjustZMax); - QObject::connect(themeList, SIGNAL(currentIndexChanged(int)), - modifier, SLOT(changeTheme(int))); - QObject::connect(gradientBtoYPB, &QPushButton::pressed, - modifier, &SurfaceGraph::setBlackToYellowGradient); - QObject::connect(gradientGtoRPB, &QPushButton::pressed, - modifier, &SurfaceGraph::setGreenToRedGradient); - - modifier->setAxisMinSliderX(axisMinSliderX); - modifier->setAxisMaxSliderX(axisMaxSliderX); - modifier->setAxisMinSliderZ(axisMinSliderZ); - modifier->setAxisMaxSliderZ(axisMaxSliderZ); - - sqrtSinModelRB->setChecked(true); - modeItemRB->setChecked(true); - themeList->setCurrentIndex(2); - - return app.exec(); -} |