diff options
author | Mika Salmela <mika.salmela@theqtcompany.com> | 2014-12-04 09:57:20 +0200 |
---|---|---|
committer | Mika Salmela <mika.salmela@theqtcompany.com> | 2014-12-04 09:57:57 +0200 |
commit | deaab27525898386ff9bf655e58810e744b518ee (patch) | |
tree | a8089be6fdd8c5e37f6719bf73510e2a889f0757 /tests/galaxy/main.cpp | |
parent | 9644652e37d13430e318332652288b05866a432f (diff) |
Initial version of Galaxy.
Change-Id: I29898bed342022290c8c8a6c4459969ffba3df56
Reviewed-by: Mika Salmela <mika.salmela@theqtcompany.com>
Diffstat (limited to 'tests/galaxy/main.cpp')
-rw-r--r-- | tests/galaxy/main.cpp | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/tests/galaxy/main.cpp b/tests/galaxy/main.cpp new file mode 100644 index 00000000..1a6ee7b2 --- /dev/null +++ b/tests/galaxy/main.cpp @@ -0,0 +1,128 @@ +/**************************************************************************** +** +** Copyright (C) 2014 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.io +** +** This file is part of the Qt Data Visualization module. +** +** Licensees holding valid commercial license for Qt may use this file in +** accordance with the Qt 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.io +** +****************************************************************************/ + +#include "galaxydata.h" + +#include <QtWidgets/QApplication> +#include <QtWidgets/QWidget> +#include <QtWidgets/QHBoxLayout> +#include <QtWidgets/QVBoxLayout> +#include <QtWidgets/QPushButton> +#include <QtWidgets/QCheckBox> +#include <QtWidgets/QComboBox> +#include <QtWidgets/QFontComboBox> +#include <QtWidgets/QLabel> +#include <QtGui/QScreen> +#include <QtGui/QFontDatabase> + +int main(int argc, char **argv) +{ + //! [0] + QApplication app(argc, argv); + Q3DScatter *graph = new Q3DScatter(); + QWidget *container = QWidget::createWindowContainer(graph); + //! [0] + + QSize screenSize = graph->screen()->size(); + container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 1.5)); + container->setMaximumSize(screenSize); + container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + container->setFocusPolicy(Qt::StrongFocus); + + QWidget *widget = new QWidget; + QHBoxLayout *hLayout = new QHBoxLayout(widget); + QVBoxLayout *vLayout = new QVBoxLayout(); + hLayout->addWidget(container, 1); + hLayout->addLayout(vLayout); + vLayout->setAlignment(Qt::AlignTop); + + widget->setWindowTitle(QStringLiteral("A Galaxy")); + + QSlider *radiusGalaxySlider = new QSlider(Qt::Horizontal, widget); + radiusGalaxySlider->setMinimum(1000); + radiusGalaxySlider->setMaximum(40000); + radiusGalaxySlider->setValue(15000); + radiusGalaxySlider->setEnabled(true); + + QSlider *radiusCoreSlider = new QSlider(Qt::Horizontal, widget); + radiusCoreSlider->setMinimum(1000); + radiusCoreSlider->setMaximum(30000); + radiusCoreSlider->setValue(4000); + radiusCoreSlider->setEnabled(true); + + QSlider *angleOffsetSlider = new QSlider(Qt::Horizontal, widget); + angleOffsetSlider->setMinimum(10); + angleOffsetSlider->setMaximum(70); + angleOffsetSlider->setValue(40); + angleOffsetSlider->setEnabled(true); + + QSlider *eccentricityInnerSlider = new QSlider(Qt::Horizontal, widget); + eccentricityInnerSlider->setMinimum(10); + eccentricityInnerSlider->setMaximum(200); + eccentricityInnerSlider->setValue(90); + eccentricityInnerSlider->setEnabled(true); + + QSlider *eccentricityOuterSlider = new QSlider(Qt::Horizontal, widget); + eccentricityOuterSlider->setMinimum(10); + eccentricityOuterSlider->setMaximum(200); + eccentricityOuterSlider->setValue(90); + eccentricityOuterSlider->setEnabled(true); + + QPushButton *resetButton = new QPushButton(widget); + resetButton->setText(QStringLiteral("Reset values")); + + QCheckBox *filteredCheckBox = new QCheckBox(widget); + filteredCheckBox->setText(QStringLiteral("Filtered")); + filteredCheckBox->setChecked(false); + + vLayout->addWidget(new QLabel(QStringLiteral("Galaxy radius"))); + vLayout->addWidget(radiusGalaxySlider); + vLayout->addWidget(new QLabel(QStringLiteral("Core radius"))); + vLayout->addWidget(radiusCoreSlider); + vLayout->addWidget(new QLabel(QStringLiteral("Angle offset"))); + vLayout->addWidget(angleOffsetSlider); + vLayout->addWidget(new QLabel(QStringLiteral("Eccentricity inner"))); + vLayout->addWidget(eccentricityInnerSlider); + vLayout->addWidget(new QLabel(QStringLiteral("Eccentricity outer"))); + vLayout->addWidget(eccentricityOuterSlider); + vLayout->addWidget(resetButton); + vLayout->addWidget(filteredCheckBox); + + GalaxyData *modifier = new GalaxyData(graph); + + QObject::connect(radiusGalaxySlider, &QSlider::valueChanged, + modifier, &GalaxyData::radiusGalaxyChanged); + QObject::connect(radiusCoreSlider, &QSlider::valueChanged, + modifier, &GalaxyData::radiusCoreChanged); + QObject::connect(angleOffsetSlider, &QSlider::valueChanged, + modifier, &GalaxyData::angleOffsetChanged); + QObject::connect(eccentricityInnerSlider, &QSlider::valueChanged, + modifier, &GalaxyData::eccentricityInnerChanged); + QObject::connect(eccentricityOuterSlider, &QSlider::valueChanged, + modifier, &GalaxyData::eccentricityOuterChanged); + QObject::connect(resetButton, &QPushButton::clicked, + modifier, &GalaxyData::resetValues); + QObject::connect(filteredCheckBox, &QCheckBox::stateChanged, + modifier, &GalaxyData::setFilteredEnabled); + + modifier->setSliders(radiusGalaxySlider, radiusCoreSlider, angleOffsetSlider, + eccentricityInnerSlider, eccentricityOuterSlider); + + widget->show(); + return app.exec(); +} |