From 8de575f99afac171f656fc5ebba4febaeac9c373 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Fri, 26 Apr 2013 12:49:13 +0300 Subject: Added font changing to widget example Change-Id: I519a042e53ccda3a4d24f98328749b562d27e002 Reviewed-by: Miikka Heikkinen --- examples/datavis3d/widget/chart.cpp | 16 +++++++++++++++- examples/datavis3d/widget/chart.h | 4 ++++ examples/datavis3d/widget/main.cpp | 21 +++++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) (limited to 'examples') diff --git a/examples/datavis3d/widget/chart.cpp b/examples/datavis3d/widget/chart.cpp index a09f770b..0f84c689 100644 --- a/examples/datavis3d/widget/chart.cpp +++ b/examples/datavis3d/widget/chart.cpp @@ -54,7 +54,8 @@ ChartModifier::ChartModifier(Q3DBars *barchart) m_barWidth(1.0f), m_barDepth(1.0f), m_barSpacingX(0.1f), - m_barSpacingZ(0.1f) + m_barSpacingZ(0.1f), + m_fontSize(20) { // Don't set any styles or specifications, start from defaults } @@ -220,6 +221,19 @@ void ChartModifier::changeSelectionMode() selectionMode = 0; } +void ChartModifier::changeFont(const QFont &font) +{ + QFont newFont = font; + newFont.setPixelSize(m_fontSize); + m_chart->setFont(newFont); +} + +void ChartModifier::changeFontSize(int fontsize) +{ + m_fontSize = fontsize; + m_chart->setFontSize((GLfloat)m_fontSize); +} + void ChartModifier::rotateX(int rotation) { m_xRotation = rotation; diff --git a/examples/datavis3d/widget/chart.h b/examples/datavis3d/widget/chart.h index d1968ac3..6ad90a83 100644 --- a/examples/datavis3d/widget/chart.h +++ b/examples/datavis3d/widget/chart.h @@ -51,6 +51,7 @@ using namespace QtDataVis3D; class ChartModifier : public QObject { + Q_OBJECT public: explicit ChartModifier(Q3DBars *barchart); ~ChartModifier(); @@ -62,6 +63,8 @@ public: void changeTheme(); void changeTransparency(); void changeSelectionMode(); + void changeFont(const QFont &font); + void changeFontSize(int fontsize); void rotateX(int rotation); void rotateY(int rotation); void setSpecsX(int barwidth); @@ -84,6 +87,7 @@ private: float m_barDepth; float m_barSpacingX; float m_barSpacingZ; + int m_fontSize; }; #endif diff --git a/examples/datavis3d/widget/main.cpp b/examples/datavis3d/widget/main.cpp index cbcce66c..9a34fe1f 100644 --- a/examples/datavis3d/widget/main.cpp +++ b/examples/datavis3d/widget/main.cpp @@ -47,8 +47,10 @@ #include #include #include +#include #include #include +#include int main(int argc, char **argv) { @@ -146,6 +148,14 @@ int main(int argc, char **argv) sampleSliderZ->setMaximum(100); sampleSliderZ->setEnabled(false); + QSlider *fontSizeSlider = new QSlider(Qt::Horizontal); + fontSizeSlider->setTickInterval(1); + fontSizeSlider->setMinimum(1); + fontSizeSlider->setValue(20); + fontSizeSlider->setMaximum(100); + + QFontComboBox *fontList = new QFontComboBox(); + vLayout->addWidget(staticCheckBox, 0, Qt::AlignTop); vLayout->addWidget(rotationCheckBox, 0, Qt::AlignTop); vLayout->addWidget(rotationSliderX, 0, Qt::AlignTop); @@ -165,6 +175,11 @@ int main(int argc, char **argv) vLayout->addWidget(styleButton, 0, Qt::AlignTop); vLayout->addWidget(cameraButton, 0, Qt::AlignTop); vLayout->addWidget(selectionButton, 0, Qt::AlignTop); + vLayout->addWidget(new QLabel(QStringLiteral("Change font"))); + vLayout->addWidget(fontList); + vLayout->addWidget(new QLabel(QStringLiteral("Adjust font size"))); + vLayout->addWidget(fontSizeSlider, 0, Qt::AlignTop); + // TODO: Add example for setMeshFileName widget->show(); @@ -186,6 +201,9 @@ int main(int argc, char **argv) QObject::connect(sampleSliderZ, &QSlider::valueChanged, modifier, &ChartModifier::setSampleCountZ); + QObject::connect(fontSizeSlider, &QSlider::valueChanged, modifier, + &ChartModifier::changeFontSize); + QObject::connect(styleButton, &QPushButton::clicked, modifier, &ChartModifier::changeStyle); QObject::connect(cameraButton, &QPushButton::clicked, modifier, &ChartModifier::changePresetCamera); @@ -196,6 +214,9 @@ int main(int argc, char **argv) QObject::connect(selectionButton, &QPushButton::clicked, modifier, &ChartModifier::changeSelectionMode); + QObject::connect(fontList, &QFontComboBox::currentFontChanged, modifier, + &ChartModifier::changeFont); + QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, rotationSliderX, &QSlider::setEnabled); QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, rotationSliderX, -- cgit v1.2.3