summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2013-04-23 09:18:27 +0300
committerTomi Korpipää <tomi.korpipaa@digia.com>2013-04-23 10:33:02 +0300
commit21c9382b878006f15e0fdeeb8f1d2f42b51f5552 (patch)
treed10a46f27e5c0d227014aa0a73903e92228b1fac /examples
parentbd3fb010ea95f622b81c550e397b11d9eeae0698 (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.cpp34
-rw-r--r--examples/datavis3d/widget/chart.h6
-rw-r--r--examples/datavis3d/widget/main.cpp46
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();