diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-04-23 09:18:27 +0300 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-04-23 10:33:02 +0300 |
commit | 21c9382b878006f15e0fdeeb8f1d2f42b51f5552 (patch) | |
tree | d10a46f27e5c0d227014aa0a73903e92228b1fac /examples | |
parent | bd3fb010ea95f622b81c550e397b11d9eeae0698 (diff) |
More adjustable properties added to example
Change-Id: Iefb7736daf47ca0e5af5ca2582fed0434df9c734
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'examples')
-rw-r--r-- | examples/datavis3d/widget/chart.cpp | 34 | ||||
-rw-r--r-- | examples/datavis3d/widget/chart.h | 6 | ||||
-rw-r--r-- | examples/datavis3d/widget/main.cpp | 46 |
3 files changed, 81 insertions, 5 deletions
diff --git a/examples/datavis3d/widget/chart.cpp b/examples/datavis3d/widget/chart.cpp index 943f70a1..04d9df03 100644 --- a/examples/datavis3d/widget/chart.cpp +++ b/examples/datavis3d/widget/chart.cpp @@ -50,7 +50,9 @@ ChartModifier::ChartModifier(Q3DBars *barchart) m_yRotation(0.0f), m_static(true), m_barWidth(1.0f), - m_barDepth(1.0f) + m_barDepth(1.0f), + m_barSpacingX(0.1f), + m_barSpacingZ(0.1f) { // Don't set any styles or specifications, start from defaults } @@ -156,7 +158,7 @@ void ChartModifier::addBars() { QVector<float> data; for (int i = 0; i < m_columnCount; i++) - data.append(((float)i / (float)m_columnCount) / 2.0f + (float)(rand() % 30) / 100.0f); + data.append((((float)i + 1) / (float)m_columnCount) * (float)(rand() % 100)); m_chart->addDataRow(data); } @@ -248,11 +250,35 @@ void ChartModifier::rotateY(int rotation) void ChartModifier::setSpecsX(int barwidth) { m_barWidth = (float)barwidth / 100.0f; - m_chart->setBarSpecs(QPointF(m_barWidth, m_barDepth)); + m_chart->setBarSpecs(QPointF(m_barWidth, m_barDepth), QPointF(m_barSpacingX, m_barSpacingZ)); } void ChartModifier::setSpecsZ(int bardepth) { m_barDepth = (float)bardepth / 100.0f; - m_chart->setBarSpecs(QPointF(m_barWidth, m_barDepth)); + m_chart->setBarSpecs(QPointF(m_barWidth, m_barDepth), QPointF(m_barSpacingX, m_barSpacingZ)); +} + +void ChartModifier::setSpacingSpecsX(int spacing) +{ + m_barSpacingX = (float)spacing / 100.0f; + m_chart->setBarSpecs(QPointF(m_barWidth, m_barDepth), QPointF(m_barSpacingX, m_barSpacingZ)); +} + +void ChartModifier::setSpacingSpecsZ(int spacing) +{ + m_barSpacingZ = (float)spacing / 100.0f; + m_chart->setBarSpecs(QPointF(m_barWidth, m_barDepth), QPointF(m_barSpacingX, m_barSpacingZ)); +} + +void ChartModifier::setSampleCountX(int samples) +{ + m_columnCount = samples; + m_chart->setupSampleSpace(QPoint(m_columnCount, m_rowCount)); +} + +void ChartModifier::setSampleCountZ(int samples) +{ + m_rowCount = samples; + m_chart->setupSampleSpace(QPoint(m_columnCount, m_rowCount)); } diff --git a/examples/datavis3d/widget/chart.h b/examples/datavis3d/widget/chart.h index 6c06a629..d1968ac3 100644 --- a/examples/datavis3d/widget/chart.h +++ b/examples/datavis3d/widget/chart.h @@ -66,6 +66,10 @@ public: void rotateY(int rotation); void setSpecsX(int barwidth); void setSpecsZ(int bardepth); + void setSpacingSpecsX(int spacing); + void setSpacingSpecsZ(int spacing); + void setSampleCountX(int samples); + void setSampleCountZ(int samples); void start(); void restart(bool dynamicData); @@ -78,6 +82,8 @@ private: bool m_static; float m_barWidth; float m_barDepth; + float m_barSpacingX; + float m_barSpacingZ; }; #endif diff --git a/examples/datavis3d/widget/main.cpp b/examples/datavis3d/widget/main.cpp index 57eac94f..c27af148 100644 --- a/examples/datavis3d/widget/main.cpp +++ b/examples/datavis3d/widget/main.cpp @@ -122,13 +122,43 @@ int main(int argc, char **argv) sizeSliderZ->setValue(100); sizeSliderZ->setMaximum(200); + QSlider *spacingSliderX = new QSlider(Qt::Horizontal); + spacingSliderX->setTickInterval(1); + spacingSliderX->setMinimum(0); + spacingSliderX->setValue(10); + spacingSliderX->setMaximum(200); + QSlider *spacingSliderZ = new QSlider(Qt::Horizontal); + spacingSliderZ->setTickInterval(1); + spacingSliderZ->setMinimum(0); + spacingSliderZ->setValue(10); + spacingSliderZ->setMaximum(200); + + QSlider *sampleSliderX = new QSlider(Qt::Horizontal); + sampleSliderX->setTickInterval(1); + sampleSliderX->setMinimum(2); + sampleSliderX->setValue(10); + sampleSliderX->setMaximum(100); + sampleSliderX->setEnabled(false); + QSlider *sampleSliderZ = new QSlider(Qt::Horizontal); + sampleSliderZ->setTickInterval(1); + sampleSliderZ->setMinimum(2); + sampleSliderZ->setValue(10); + sampleSliderZ->setMaximum(100); + sampleSliderZ->setEnabled(false); + vLayout->addWidget(staticCheckBox, 0, Qt::AlignTop); vLayout->addWidget(rotationCheckBox, 0, Qt::AlignTop); vLayout->addWidget(rotationSliderX, 0, Qt::AlignTop); vLayout->addWidget(rotationSliderY, 0, Qt::AlignTop); vLayout->addWidget(new QLabel(QStringLiteral("Adjust relative bar size"))); vLayout->addWidget(sizeSliderX, 0, Qt::AlignTop); - vLayout->addWidget(sizeSliderZ, 1, Qt::AlignTop); + vLayout->addWidget(sizeSliderZ, 0, Qt::AlignTop); + vLayout->addWidget(new QLabel(QStringLiteral("Adjust relative bar spacing"))); + vLayout->addWidget(spacingSliderX, 0, Qt::AlignTop); + vLayout->addWidget(spacingSliderZ, 0, Qt::AlignTop); + vLayout->addWidget(new QLabel(QStringLiteral("Adjust sample count"))); + vLayout->addWidget(sampleSliderX, 0, Qt::AlignTop); + vLayout->addWidget(sampleSliderZ, 1, Qt::AlignTop); vLayout->addWidget(dataButton, 0, Qt::AlignTop); vLayout->addWidget(themeButton, 0, Qt::AlignTop); vLayout->addWidget(labelButton, 0, Qt::AlignTop); @@ -146,6 +176,16 @@ int main(int argc, char **argv) QObject::connect(sizeSliderX, &QSlider::valueChanged, modifier, &ChartModifier::setSpecsX); QObject::connect(sizeSliderZ, &QSlider::valueChanged, modifier, &ChartModifier::setSpecsZ); + QObject::connect(spacingSliderX, &QSlider::valueChanged, modifier, + &ChartModifier::setSpacingSpecsX); + QObject::connect(spacingSliderZ, &QSlider::valueChanged, modifier, + &ChartModifier::setSpacingSpecsZ); + + QObject::connect(sampleSliderX, &QSlider::valueChanged, modifier, + &ChartModifier::setSampleCountX); + QObject::connect(sampleSliderZ, &QSlider::valueChanged, modifier, + &ChartModifier::setSampleCountZ); + QObject::connect(styleButton, &QPushButton::clicked, modifier, &ChartModifier::changeStyle); QObject::connect(cameraButton, &QPushButton::clicked, modifier, &ChartModifier::changePresetCamera); @@ -167,6 +207,10 @@ int main(int argc, char **argv) QObject::connect(staticCheckBox, &QCheckBox::stateChanged, dataButton, &QPushButton::setEnabled); + QObject::connect(staticCheckBox, &QCheckBox::stateChanged, sampleSliderX, + &QSlider::setEnabled); + QObject::connect(staticCheckBox, &QCheckBox::stateChanged, sampleSliderZ, + &QSlider::setEnabled); QObject::connect(staticCheckBox, &QCheckBox::stateChanged, modifier, &ChartModifier::restart); modifier->start(); |