summaryrefslogtreecommitdiffstats
path: root/examples/datavisualization/bars
diff options
context:
space:
mode:
Diffstat (limited to 'examples/datavisualization/bars')
-rw-r--r--examples/datavisualization/bars/doc/images/bars-example.pngbin151337 -> 188289 bytes
-rw-r--r--examples/datavisualization/bars/doc/src/bars.qdoc15
-rw-r--r--examples/datavisualization/bars/graphmodifier.cpp32
-rw-r--r--examples/datavisualization/bars/graphmodifier.h4
-rw-r--r--examples/datavisualization/bars/main.cpp34
5 files changed, 84 insertions, 1 deletions
diff --git a/examples/datavisualization/bars/doc/images/bars-example.png b/examples/datavisualization/bars/doc/images/bars-example.png
index 5bd2c7d9..fb79668d 100644
--- a/examples/datavisualization/bars/doc/images/bars-example.png
+++ b/examples/datavisualization/bars/doc/images/bars-example.png
Binary files differ
diff --git a/examples/datavisualization/bars/doc/src/bars.qdoc b/examples/datavisualization/bars/doc/src/bars.qdoc
index 361078bb..1fa3f934 100644
--- a/examples/datavisualization/bars/doc/src/bars.qdoc
+++ b/examples/datavisualization/bars/doc/src/bars.qdoc
@@ -29,6 +29,7 @@
\li Create an application with Q3DBars and some widgets
\li Use QBar3DSeries and QBarDataProxy to set data to the graph
\li Adjust some graph and series properties using widget controls
+ \li Select a row or a column by clicking an axis label
\endlist
It also demonstrates how having negative bar values affects the graph.
@@ -167,6 +168,20 @@
\li Font size
\endlist
+ \section1 Selecting a row/column by clicking an axis label
+
+ Selection by axis label is default functionality for bar graphs. As an example, you can select
+ rows by clicking an axis label in the following way:
+
+ \list
+ \li Change selection mode to \c SelectionRow
+ \li Click a year label
+ \li The row with the clicked year is selected
+ \endlist
+
+ You can use the same method with \c SelectionSlice and \c SelectionItem flags, as long as
+ you have either \c SelectionRow or \c SelectionColumn set as well.
+
\section1 Example contents
*/
diff --git a/examples/datavisualization/bars/graphmodifier.cpp b/examples/datavisualization/bars/graphmodifier.cpp
index 5df4066c..9c280bfb 100644
--- a/examples/datavisualization/bars/graphmodifier.cpp
+++ b/examples/datavisualization/bars/graphmodifier.cpp
@@ -68,9 +68,15 @@ GraphModifier::GraphModifier(Q3DBars *bargraph)
m_temperatureAxis->setSubSegmentCount(m_subSegments);
m_temperatureAxis->setRange(m_minval, m_maxval);
m_temperatureAxis->setLabelFormat(QString(QStringLiteral("%.1f ") + celsiusString));
+ m_temperatureAxis->setLabelAutoRotation(30.0f);
+ m_temperatureAxis->setTitleVisible(true);
m_yearAxis->setTitle("Year");
+ m_yearAxis->setLabelAutoRotation(30.0f);
+ m_yearAxis->setTitleVisible(true);
m_monthAxis->setTitle("Month");
+ m_monthAxis->setLabelAutoRotation(30.0f);
+ m_monthAxis->setTitleVisible(true);
m_graph->setValueAxis(m_temperatureAxis);
m_graph->setRowAxis(m_yearAxis);
@@ -236,6 +242,27 @@ void GraphModifier::shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQuality
emit shadowQualityChanged(quality);
}
+void GraphModifier::changeLabelRotation(int rotation)
+{
+ m_temperatureAxis->setLabelAutoRotation(float(rotation));
+ m_monthAxis->setLabelAutoRotation(float(rotation));
+ m_yearAxis->setLabelAutoRotation(float(rotation));
+}
+
+void GraphModifier::setAxisTitleVisibility(bool enabled)
+{
+ m_temperatureAxis->setTitleVisible(enabled);
+ m_monthAxis->setTitleVisible(enabled);
+ m_yearAxis->setTitleVisible(enabled);
+}
+
+void GraphModifier::setAxisTitleFixed(bool enabled)
+{
+ m_temperatureAxis->setTitleFixed(enabled);
+ m_monthAxis->setTitleFixed(enabled);
+ m_yearAxis->setTitleFixed(enabled);
+}
+
void GraphModifier::changeShadowQuality(int quality)
{
QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality);
@@ -278,3 +305,8 @@ void GraphModifier::setSeriesVisibility(int enabled)
{
m_secondarySeries->setVisible(bool(enabled));
}
+
+void GraphModifier::setReverseValueAxis(int enabled)
+{
+ m_graph->valueAxis()->setReversed(enabled);
+}
diff --git a/examples/datavisualization/bars/graphmodifier.h b/examples/datavisualization/bars/graphmodifier.h
index cac002a1..107ffbab 100644
--- a/examples/datavisualization/bars/graphmodifier.h
+++ b/examples/datavisualization/bars/graphmodifier.h
@@ -48,6 +48,7 @@ public:
void setGridEnabled(int enabled);
void setSmoothBars(int smooth);
void setSeriesVisibility(int enabled);
+ void setReverseValueAxis(int enabled);
public slots:
void changeRange(int range);
@@ -56,6 +57,9 @@ public slots:
void changeTheme(int theme);
void changeShadowQuality(int quality);
void shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQuality shadowQuality);
+ void changeLabelRotation(int rotation);
+ void setAxisTitleVisibility(bool enabled);
+ void setAxisTitleFixed(bool enabled);
signals:
void shadowQualityChanged(int quality);
diff --git a/examples/datavisualization/bars/main.cpp b/examples/datavisualization/bars/main.cpp
index e6461202..96abdc51 100644
--- a/examples/datavisualization/bars/main.cpp
+++ b/examples/datavisualization/bars/main.cpp
@@ -132,6 +132,10 @@ int main(int argc, char **argv)
seriesCheckBox->setText(QStringLiteral("Show second series"));
seriesCheckBox->setChecked(false);
+ QCheckBox *reverseValueAxisCheckBox = new QCheckBox(widget);
+ reverseValueAxisCheckBox->setText(QStringLiteral("Reverse value axis"));
+ reverseValueAxisCheckBox->setChecked(false);
+
//! [4]
QSlider *rotationSliderX = new QSlider(Qt::Horizontal, widget);
rotationSliderX->setTickInterval(30);
@@ -179,6 +183,21 @@ int main(int argc, char **argv)
rangeList->addItem(QStringLiteral("All"));
rangeList->setCurrentIndex(8);
+ QCheckBox *axisTitlesVisibleCB = new QCheckBox(widget);
+ axisTitlesVisibleCB->setText(QStringLiteral("Axis titles visible"));
+ axisTitlesVisibleCB->setChecked(true);
+
+ QCheckBox *axisTitlesFixedCB = new QCheckBox(widget);
+ axisTitlesFixedCB->setText(QStringLiteral("Axis titles fixed"));
+ axisTitlesFixedCB->setChecked(true);
+
+ QSlider *axisLabelRotationSlider = new QSlider(Qt::Horizontal, widget);
+ axisLabelRotationSlider->setTickInterval(10);
+ axisLabelRotationSlider->setTickPosition(QSlider::TicksBelow);
+ axisLabelRotationSlider->setMinimum(0);
+ axisLabelRotationSlider->setValue(30);
+ axisLabelRotationSlider->setMaximum(90);
+
//! [5]
vLayout->addWidget(new QLabel(QStringLiteral("Rotate horizontally")));
vLayout->addWidget(rotationSliderX, 0, Qt::AlignTop);
@@ -191,6 +210,9 @@ int main(int argc, char **argv)
vLayout->addWidget(gridCheckBox);
vLayout->addWidget(smoothCheckBox);
vLayout->addWidget(seriesCheckBox);
+ vLayout->addWidget(reverseValueAxisCheckBox);
+ vLayout->addWidget(axisTitlesVisibleCB);
+ vLayout->addWidget(axisTitlesFixedCB);
vLayout->addWidget(new QLabel(QStringLiteral("Show year")));
vLayout->addWidget(rangeList);
vLayout->addWidget(new QLabel(QStringLiteral("Change bar style")));
@@ -204,7 +226,9 @@ int main(int argc, char **argv)
vLayout->addWidget(new QLabel(QStringLiteral("Change font")));
vLayout->addWidget(fontList);
vLayout->addWidget(new QLabel(QStringLiteral("Adjust font size")));
- vLayout->addWidget(fontSizeSlider, 1, Qt::AlignTop);
+ vLayout->addWidget(fontSizeSlider);
+ vLayout->addWidget(new QLabel(QStringLiteral("Axis label rotation")));
+ vLayout->addWidget(axisLabelRotationSlider, 1, Qt::AlignTop);
//! [2]
GraphModifier *modifier = new GraphModifier(widgetgraph);
@@ -228,6 +252,8 @@ int main(int argc, char **argv)
&GraphModifier::setSmoothBars);
QObject::connect(seriesCheckBox, &QCheckBox::stateChanged, modifier,
&GraphModifier::setSeriesVisibility);
+ QObject::connect(reverseValueAxisCheckBox, &QCheckBox::stateChanged, modifier,
+ &GraphModifier::setReverseValueAxis);
QObject::connect(modifier, &GraphModifier::backgroundEnabledChanged,
backgroundCheckBox, &QCheckBox::setChecked);
@@ -264,6 +290,12 @@ int main(int argc, char **argv)
QObject::connect(modifier, &GraphModifier::fontChanged, fontList,
&QFontComboBox::setCurrentFont);
+ QObject::connect(axisTitlesVisibleCB, &QCheckBox::stateChanged, modifier,
+ &GraphModifier::setAxisTitleVisibility);
+ QObject::connect(axisTitlesFixedCB, &QCheckBox::stateChanged, modifier,
+ &GraphModifier::setAxisTitleFixed);
+ QObject::connect(axisLabelRotationSlider, &QSlider::valueChanged, modifier,
+ &GraphModifier::changeLabelRotation);
//! [3]
widget->show();
return app.exec();