diff options
Diffstat (limited to 'examples/widget')
-rw-r--r-- | examples/widget/chart.cpp | 440 | ||||
-rw-r--r-- | examples/widget/chart.h | 92 | ||||
-rw-r--r-- | examples/widget/doc/images/widget-example.png | bin | 233825 -> 0 bytes | |||
-rw-r--r-- | examples/widget/doc/src/widget.qdoc | 29 | ||||
-rw-r--r-- | examples/widget/main.cpp | 297 | ||||
-rw-r--r-- | examples/widget/widget.pro | 10 |
6 files changed, 0 insertions, 868 deletions
diff --git a/examples/widget/chart.cpp b/examples/widget/chart.cpp deleted file mode 100644 index a8c6c14a..00000000 --- a/examples/widget/chart.cpp +++ /dev/null @@ -1,440 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc -** All rights reserved. -** For any questions to Digia, please use contact form at http://qt.digia.com -** -** This file is part of the QtDataVis3D module. -** -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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.digia.com -** -****************************************************************************/ - -#include "chart.h" -#include <QtDataVis3D/qcategoryaxis.h> -#include <QtDataVis3D/qvalueaxis.h> -#include <QtDataVis3D/qbardataproxy.h> -#include <QTime> - -QT_DATAVIS3D_USE_NAMESPACE - -const QString celsiusString = QString(QChar(0xB0)) + "C"; - -ChartModifier::ChartModifier(Q3DBars *barchart) - : m_chart(barchart), - m_columnCount(21), - m_rowCount(21), - m_xRotation(0.0f), - m_yRotation(0.0f), - m_static(true), - m_barWidth(1.0f), - m_barDepth(1.0f), - m_barSpacingX(0.1f), - m_barSpacingZ(0.1f), - m_fontSize(20), - m_segments(4), - m_subSegments(3), - m_minval(-20.0), // TODO Barchart Y-axis currently only properly supports zero-centered ranges - m_maxval(20.0) -{ - // Don't set any styles or specifications, start from defaults - // Generate generic labels - for (int i = 0; i < 200; i++) { - if (i % 5) - m_genericRowLabels << QString(); - else - m_genericRowLabels << QStringLiteral("Row %1").arg(i); - } - for (int i = 0; i < 200; i++) { - if (i % 5) - m_genericColumnLabels << QString(); - else - m_genericColumnLabels << QStringLiteral("Column %1").arg(i); - } -} - -ChartModifier::~ChartModifier() -{ - delete m_chart; -} - -void ChartModifier::start() -{ - if (m_static) - addDataSet(); -} - -void ChartModifier::restart(bool dynamicData) -{ - m_static = !dynamicData; - - if (m_static) { - start(); - // Set selection mode to zoom row - m_chart->setSelectionMode(QDataVis::ModeZoomRow); - m_chart->setFont(QFont("Times Roman", 20)); - } else { - m_chart->dataProxy()->resetArray(0); - // Set up sample space - m_chart->setupSampleSpace(m_rowCount, m_columnCount); - // Set selection mode to full - m_chart->setSelectionMode(QDataVis::ModeItemRowAndColumn); - m_chart->valueAxis()->setSegmentCount(m_segments * 2); - m_chart->valueAxis()->setSubSegmentCount(0); - m_chart->valueAxis()->setAutoAdjustRange(true); - - m_chart->rowAxis()->setTitle("Generic Row"); - m_chart->columnAxis()->setTitle("Generic Column"); - m_chart->valueAxis()->setTitle("Generic Value"); - - if (m_chart->rowAxis()->labels().size() < m_rowCount) - m_chart->rowAxis()->setCategoryLabels(m_genericRowLabels.mid(0, m_rowCount)); - - if (m_chart->columnAxis()->labels().size() < m_rowCount) - m_chart->columnAxis()->setCategoryLabels(m_genericColumnLabels.mid(0, m_columnCount)); - } -} - -void ChartModifier::addDataSet() -{ - // Prepare data to be visualized - // Use QDataSet adder - - // Set window title - m_chart->setWindowTitle(QStringLiteral("Average temperatures in Oulu, Finland (2006-2012)")); - - // Set up row and column names - QStringList months; - months << "January" << "February" << "March" << "April" << "May" << "June" << "July" << "August" << "September" << "October" << "November" << "December"; - QStringList years; - years << "2006" << "2007" << "2008" << "2009" << "2010" << "2011" << "2012"; - - // Set up data - float temp[7][12] = {{-6.7f, -11.7f, -9.7f, 3.3f, 9.2f, 14.0f, 16.3f, 17.8f, 10.2f, 2.1f, -2.6f, -0.3f}, // 2006 - {-6.8f, -13.3f, 0.2f, 1.5f, 7.9f, 13.4f, 16.1f, 15.5f, 8.2f, 5.4f, -2.6f, -0.8f}, // 2007 - {-4.2f, -4.0f, -4.6f, 1.9f, 7.3f, 12.5f, 15.0f, 12.8f, 7.6f, 5.1f, -0.9f, -1.3f}, // 2008 - {-7.8f, -8.8f, -4.2f, 0.7f, 9.3f, 13.2f, 15.8f, 15.5f, 11.2f, 0.6f, 0.7f, -8.4f}, // 2009 - {-14.4f, -12.1f, -7.0f, 2.3f, 11.0f, 12.6f, 18.8f, 13.8f, 9.4f, 3.9f, -5.6f, -13.0f}, // 2010 - {-9.0f, -15.2f, -3.8f, 2.6f, 8.3f, 15.9f, 18.6f, 14.9f, 11.1f, 5.3f, 1.8f, -0.2f}, // 2011 - {-8.7f, -11.3f, -2.3f, 0.4f, 7.5f, 12.2f, 16.4f, 14.1f, 9.2f, 3.1f, 0.3f, -12.1f}}; // 2012 - - // Use default data proxy to feed data directly in expected format - QBarDataProxy *proxy = m_chart->dataProxy(); - proxy->setItemLabelFormat(celsiusString); - - // Add labels - m_chart->rowAxis()->setTitle("Year"); - m_chart->columnAxis()->setTitle("Month"); - m_chart->valueAxis()->setTitle("Average temperature (" + celsiusString + ")"); - m_chart->rowAxis()->setCategoryLabels(years); - m_chart->columnAxis()->setCategoryLabels(months); - m_chart->valueAxis()->setSegmentCount(m_segments); - m_chart->valueAxis()->setSubSegmentCount(m_subSegments); - m_chart->valueAxis()->setRange(m_minval, m_maxval); - - // Create data rows - QBarDataArray *dataSet = new QBarDataArray; - QBarDataRow *dataRow; - - dataSet->reserve(years.size()); - for (int year = 0; year < years.size(); year++) { - dataRow = new QBarDataRow(months.size()); - // Create data items - for (int month = 0; month < months.size(); month++) { - // Add data to rows - (*dataRow)[month].setValue(temp[year][month]); - } - // Add row to set - dataSet->append(dataRow); - } - - // Set up sample space based on prepared data - m_chart->setupSampleSpace(years.size(), months.size()); - - // Add data to chart (chart assumes ownership) - proxy->resetArray(dataSet); -} - -void ChartModifier::addRow() -{ - QBarDataRow *dataRow = new QBarDataRow(m_columnCount); - for (float i = 0; i < m_columnCount; i++) { - (*dataRow)[i].setValue(((i + 1) / (float)m_columnCount) * (float)(rand() % 100)); - //(*dataRow)[i].setValue(i + m_chart->dataProxy()->rowCount()); - } - m_chart->dataProxy()->insertRow(0, dataRow); -} - -void ChartModifier::addRows() -{ - QTime timer; - timer.start(); - QBarDataArray dataArray; - for (int i = 0; i < m_rowCount; i++) { - QBarDataRow *dataRow = new QBarDataRow(m_columnCount); - for (int j = 0; j < m_columnCount; j++) - (*dataRow)[j].setValue(qreal(j + i + m_chart->dataProxy()->rowCount())); - dataArray.append(dataRow); - } - m_chart->dataProxy()->insertRows(0, dataArray); - qDebug() << "Added" << m_rowCount << "rows, time:" << timer.elapsed(); -} - -void ChartModifier::changeItem() -{ - // TODO fix to use actual selected item, for now just assume some row/column are selected - int row = qMin(4, (m_chart->dataProxy()->rowCount() - 1)); - if (row >= 0) { - int column = qMin(4, (m_chart->dataProxy()->rowAt(row)->size() - 1)); - if (column >= 0) { - QBarDataItem item(qreal(rand() % 100)); - m_chart->dataProxy()->setItem(row, column, item); - } - } -} - -void ChartModifier::changeRow() -{ - // TODO fix to use actual selected item, for now just assume some is selected - int row = qMin(4, (m_chart->dataProxy()->rowCount() - 1)); - if (row >= 0) { - QBarDataRow *newRow = new QBarDataRow(m_chart->dataProxy()->rowAt(row)->size()); - for (int i = 0; i < newRow->size(); i++) - (*newRow)[i].setValue(qreal(rand() % 100)); - m_chart->dataProxy()->setRow(row, newRow); - } -} - -void ChartModifier::changeRows() -{ - // TODO fix to use actual selected item, for now just assume some is selected - int row = qMin(4, (m_chart->dataProxy()->rowCount() - 1)); - if (row >= 0) { - int startRow = qMax(row - 2, 0); - QBarDataArray newArray; - for (int i = startRow; i <= row; i++ ) { - QBarDataRow *newRow = new QBarDataRow(m_chart->dataProxy()->rowAt(i)->size()); - for (int j = 0; j < newRow->size(); j++) - (*newRow)[j].setValue(qreal(rand() % 100)); - newArray.append(newRow); - } - m_chart->dataProxy()->setRows(startRow, newArray); - } -} - -void ChartModifier::removeRow() -{ - // TODO fix to use actual selected item, for now just assume some is selected - int row = qMin(4, (m_chart->dataProxy()->rowCount() - 1)); - if (row >= 0) - m_chart->dataProxy()->removeRows(row, 1); -} - -void ChartModifier::removeRows() -{ - // TODO fix to use actual selected item, for now just assume some is selected - int row = qMin(4, (m_chart->dataProxy()->rowCount() - 1)); - if (row >= 0) { - int startRow = qMax(row - 2, 0); - m_chart->dataProxy()->removeRows(startRow, 3); - } -} - -void ChartModifier::changeStyle() -{ - static int model = 0; - switch (model) { - case 0: - m_chart->setBarType(QDataVis::Cylinders, false); - break; - case 1: - m_chart->setBarType(QDataVis::Cylinders, true); - break; - case 2: - m_chart->setBarType(QDataVis::Cones, false); - break; - case 3: - m_chart->setBarType(QDataVis::Cones, true); - break; - case 4: - m_chart->setBarType(QDataVis::Bars, false); - break; - case 5: - m_chart->setBarType(QDataVis::Bars, true); - break; - case 6: - m_chart->setBarType(QDataVis::Pyramids, false); - break; - case 7: - m_chart->setBarType(QDataVis::Pyramids, true); - break; - case 8: - m_chart->setBarType(QDataVis::BevelBars, false); - break; - case 9: - m_chart->setBarType(QDataVis::BevelBars, true); - break; - } - model++; - if (model > 9) - model = 0; -} - -void ChartModifier::changePresetCamera() -{ - static int preset = QDataVis::PresetFrontLow; - - m_chart->setCameraPreset((QDataVis::CameraPreset)preset); - - if (++preset > QDataVis::PresetDirectlyBelow) - preset = QDataVis::PresetFrontLow; -} - -void ChartModifier::changeTheme() -{ - static int theme = QDataVis::ThemeSystem; - - m_chart->setTheme((QDataVis::ColorTheme)theme); - - if (++theme > QDataVis::ThemeLight) - theme = QDataVis::ThemeSystem; -} - -void ChartModifier::changeTransparency() -{ - static int transparency = QDataVis::TransparencyNone; - - m_chart->setLabelTransparency((QDataVis::LabelTransparency)transparency); - - if (++transparency > QDataVis::TransparencyNoBackground) - transparency = QDataVis::TransparencyFromTheme; -} - -void ChartModifier::changeSelectionMode() -{ - static int selectionMode = QDataVis::ModeNone; - - m_chart->setSelectionMode((QDataVis::SelectionMode)selectionMode); - - if (++selectionMode > QDataVis::ModeZoomColumn) - selectionMode = QDataVis::ModeNone; -} - -void ChartModifier::changeFont(const QFont &font) -{ - QFont newFont = font; - newFont.setPointSize(m_fontSize); - //qDebug() << newFont << newFont.style(); - m_chart->setFont(newFont); -} - -void ChartModifier::changeFontSize(int fontsize) -{ - m_fontSize = fontsize; - m_chart->setFontSize((GLfloat)m_fontSize); -} - -void ChartModifier::shadowQualityUpdatedByVisual(QDataVis::ShadowQuality sq) -{ - int quality = 0; - switch (sq) { - case QDataVis::ShadowLow: - quality = 1; - break; - case QDataVis::ShadowMedium: - quality = 2; - break; - case QDataVis::ShadowHigh: - quality = 3; - break; - } - - // Updates the UI component to show correct shadow quality - emit shadowQualityChanged(quality); -} - -void ChartModifier::changeShadowQuality(int quality) -{ - QDataVis::ShadowQuality sq = QDataVis::ShadowNone; - switch (quality) { - case 1: - sq = QDataVis::ShadowLow; - break; - case 2: - sq = QDataVis::ShadowMedium; - break; - case 3: - sq = QDataVis::ShadowHigh; - break; - } - m_chart->setShadowQuality(sq); - emit shadowQualityChanged(quality); -} - -void ChartModifier::setBackgroundEnabled(int enabled) -{ - m_chart->setBackgroundVisible((bool)enabled); -} - -void ChartModifier::setGridEnabled(int enabled) -{ - m_chart->setGridVisible((bool)enabled); -} - -void ChartModifier::rotateX(int rotation) -{ - m_xRotation = rotation; - m_chart->setCameraPosition(m_xRotation, m_yRotation); -} - -void ChartModifier::rotateY(int rotation) -{ - m_yRotation = rotation; - m_chart->setCameraPosition(m_xRotation, m_yRotation); -} - -void ChartModifier::setSpecsX(int barwidth) -{ - m_barWidth = (float)barwidth / 100.0f; - m_chart->setBarSpecs(QSizeF(m_barWidth, m_barDepth), QSizeF(m_barSpacingX, m_barSpacingZ)); -} - -void ChartModifier::setSpecsZ(int bardepth) -{ - m_barDepth = (float)bardepth / 100.0f; - m_chart->setBarSpecs(QSizeF(m_barWidth, m_barDepth), QSizeF(m_barSpacingX, m_barSpacingZ)); -} - -void ChartModifier::setSpacingSpecsX(int spacing) -{ - m_barSpacingX = (float)spacing / 100.0f; - m_chart->setBarSpecs(QSizeF(m_barWidth, m_barDepth), QSizeF(m_barSpacingX, m_barSpacingZ)); -} - -void ChartModifier::setSpacingSpecsZ(int spacing) -{ - m_barSpacingZ = (float)spacing / 100.0f; - m_chart->setBarSpecs(QSizeF(m_barWidth, m_barDepth), QSizeF(m_barSpacingX, m_barSpacingZ)); -} - -void ChartModifier::setSampleCountX(int samples) -{ - m_columnCount = samples; - m_chart->setupSampleSpace(m_rowCount, m_columnCount); - if (m_chart->columnAxis()->labels().size() < m_columnCount) - m_chart->columnAxis()->setCategoryLabels(m_genericColumnLabels.mid(0, m_columnCount)); -} - -void ChartModifier::setSampleCountZ(int samples) -{ - m_rowCount = samples; - m_chart->setupSampleSpace(m_rowCount, m_columnCount); - if (m_chart->rowAxis()->labels().size() < m_rowCount) - m_chart->rowAxis()->setCategoryLabels(m_genericRowLabels.mid(0, m_rowCount)); -} diff --git a/examples/widget/chart.h b/examples/widget/chart.h deleted file mode 100644 index 67280e13..00000000 --- a/examples/widget/chart.h +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc -** All rights reserved. -** For any questions to Digia, please use contact form at http://qt.digia.com -** -** This file is part of the QtDataVis3D module. -** -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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.digia.com -** -****************************************************************************/ - -#ifndef CHARTMODIFIER_H -#define CHARTMODIFIER_H - -#include <QtDataVis3D/q3dbars.h> - -#include <QFont> -#include <QDebug> -#include <QStringList> - -using namespace QtDataVis3D; - -class ChartModifier : public QObject -{ - Q_OBJECT -public: - explicit ChartModifier(Q3DBars *barchart); - ~ChartModifier(); - - void addDataSet(); - void addRow(); - void addRows(); - void changeItem(); - void changeRow(); - void changeRows(); - void removeRow(); - void removeRows(); - void changeStyle(); - void changePresetCamera(); - void changeTheme(); - void changeTransparency(); - void changeSelectionMode(); - void changeFont(const QFont &font); - void changeFontSize(int fontsize); - void rotateX(int rotation); - void rotateY(int rotation); - void setBackgroundEnabled(int enabled); - void setGridEnabled(int enabled); - 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); - -public slots: - void changeShadowQuality(int quality); - void shadowQualityUpdatedByVisual(QDataVis::ShadowQuality shadowQuality); - -signals: - void shadowQualityChanged(int quality); - -private: - Q3DBars *m_chart; - int m_columnCount; - int m_rowCount; - float m_xRotation; - float m_yRotation; - bool m_static; - float m_barWidth; - float m_barDepth; - float m_barSpacingX; - float m_barSpacingZ; - int m_fontSize; - int m_segments; - int m_subSegments; - qreal m_minval; - qreal m_maxval; - QStringList m_genericRowLabels; - QStringList m_genericColumnLabels; -}; - -#endif diff --git a/examples/widget/doc/images/widget-example.png b/examples/widget/doc/images/widget-example.png Binary files differdeleted file mode 100644 index 4fb43b42..00000000 --- a/examples/widget/doc/images/widget-example.png +++ /dev/null diff --git a/examples/widget/doc/src/widget.qdoc b/examples/widget/doc/src/widget.qdoc deleted file mode 100644 index 6645d356..00000000 --- a/examples/widget/doc/src/widget.qdoc +++ /dev/null @@ -1,29 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc -** All rights reserved. -** For any questions to Digia, please use contact form at http://qt.digia.com -** -** This file is part of the QtDataVis3D module. -** -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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.digia.com -** -****************************************************************************/ - -/*! - \example widget - \title Widget Example - - The widget example shows how to make a 3D bar chart using Q3DBars and combining the use of - widgets for adjusting several adjustable qualities. - - \image widget-example.png - - TODO -*/ diff --git a/examples/widget/main.cpp b/examples/widget/main.cpp deleted file mode 100644 index 47892484..00000000 --- a/examples/widget/main.cpp +++ /dev/null @@ -1,297 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc -** All rights reserved. -** For any questions to Digia, please use contact form at http://qt.digia.com -** -** This file is part of the QtDataVis3D module. -** -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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.digia.com -** -****************************************************************************/ - -#include "chart.h" - -#include <QApplication> -#include <QWidget> -#include <QHBoxLayout> -#include <QVBoxLayout> -#include <QPushButton> -#include <QCheckBox> -#include <QSlider> -#include <QFontComboBox> -#include <QLabel> -#include <QScreen> -#include <QFontDatabase> - -int main(int argc, char **argv) -{ - QApplication app(argc, argv); - - QWidget *widget = new QWidget; - QHBoxLayout *hLayout = new QHBoxLayout(widget); - QVBoxLayout *vLayout = new QVBoxLayout(); - - Q3DBars *widgetchart = new Q3DBars(); - QSize screenSize = widgetchart->screen()->size(); - - QWidget *container = QWidget::createWindowContainer(widgetchart); - container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 2)); - container->setMaximumSize(screenSize); - container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); - container->setFocusPolicy(Qt::StrongFocus); - - widget->setWindowTitle(QStringLiteral("Average temperatures in Oulu, Finland (2006-2012)")); - - hLayout->addWidget(container, 1); - hLayout->addLayout(vLayout); - - QPushButton *dataButton = new QPushButton(widget); - dataButton->setText(QStringLiteral("Insert a row of data")); - dataButton->setEnabled(false); - - QPushButton *multiDataButton = new QPushButton(widget); - multiDataButton->setText(QStringLiteral("Insert many rows of data")); - multiDataButton->setEnabled(false); - - QPushButton *changeSingleDataButton = new QPushButton(widget); - changeSingleDataButton->setText(QStringLiteral("Change selected bar value")); - changeSingleDataButton->setEnabled(false); - - QPushButton *changeRowButton = new QPushButton(widget); - changeRowButton->setText(QStringLiteral("Change selected row values")); - changeRowButton->setEnabled(false); - - QPushButton *changeRowsButton = new QPushButton(widget); - changeRowsButton->setText(QStringLiteral("Change three rows from selected")); - changeRowsButton->setEnabled(false); - - QPushButton *removeRowButton = new QPushButton(widget); - removeRowButton->setText(QStringLiteral("Remove selected row")); - removeRowButton->setEnabled(false); - - QPushButton *removeRowsButton = new QPushButton(widget); - removeRowsButton->setText(QStringLiteral("remove three rows from selected")); - removeRowsButton->setEnabled(false); - - QPushButton *themeButton = new QPushButton(widget); - themeButton->setText(QStringLiteral("Change theme")); - - QPushButton *labelButton = new QPushButton(widget); - labelButton->setText(QStringLiteral("Change label style")); - - QPushButton *styleButton = new QPushButton(widget); - styleButton->setText(QStringLiteral("Change bar style")); - - QPushButton *cameraButton = new QPushButton(widget); - cameraButton->setText(QStringLiteral("Change camera preset")); - - QPushButton *selectionButton = new QPushButton(widget); - selectionButton->setText(QStringLiteral("Change selection mode")); - - QCheckBox *backgroundCheckBox = new QCheckBox(widget); - backgroundCheckBox->setText(QStringLiteral("Show background")); - backgroundCheckBox->setChecked(true); - - QCheckBox *gridCheckBox = new QCheckBox(widget); - gridCheckBox->setText(QStringLiteral("Show grid")); - gridCheckBox->setChecked(true); - - QCheckBox *rotationCheckBox = new QCheckBox(widget); - rotationCheckBox->setText("Rotate with slider"); - - QCheckBox *staticCheckBox = new QCheckBox(widget); - staticCheckBox->setText("Use dynamic data"); - staticCheckBox->setChecked(false); - - QSlider *rotationSliderX = new QSlider(Qt::Horizontal, widget); - rotationSliderX->setTickInterval(1); - rotationSliderX->setMinimum(-180); - rotationSliderX->setValue(0); - rotationSliderX->setMaximum(180); - rotationSliderX->setEnabled(false); - QSlider *rotationSliderY = new QSlider(Qt::Horizontal, widget); - rotationSliderY->setTickInterval(1); - rotationSliderY->setMinimum(0); - rotationSliderY->setValue(0); - rotationSliderY->setMaximum(90); - rotationSliderY->setEnabled(false); - - QSlider *sizeSliderX = new QSlider(Qt::Horizontal, widget); - sizeSliderX->setTickInterval(1); - sizeSliderX->setMinimum(1); - sizeSliderX->setValue(100); - sizeSliderX->setMaximum(100); - QSlider *sizeSliderZ = new QSlider(Qt::Horizontal, widget); - sizeSliderZ->setTickInterval(1); - sizeSliderZ->setMinimum(1); - sizeSliderZ->setValue(100); - sizeSliderZ->setMaximum(100); - - QSlider *spacingSliderX = new QSlider(Qt::Horizontal, widget); - spacingSliderX->setTickInterval(1); - spacingSliderX->setMinimum(0); - spacingSliderX->setValue(10); - spacingSliderX->setMaximum(200); - QSlider *spacingSliderZ = new QSlider(Qt::Horizontal, widget); - spacingSliderZ->setTickInterval(1); - spacingSliderZ->setMinimum(0); - spacingSliderZ->setValue(10); - spacingSliderZ->setMaximum(200); - - QSlider *sampleSliderX = new QSlider(Qt::Horizontal, widget); - sampleSliderX->setTickInterval(1); - sampleSliderX->setMinimum(2); - sampleSliderX->setValue(10); - sampleSliderX->setMaximum(200); - sampleSliderX->setEnabled(false); - QSlider *sampleSliderZ = new QSlider(Qt::Horizontal, widget); - sampleSliderZ->setTickInterval(1); - sampleSliderZ->setMinimum(2); - sampleSliderZ->setValue(10); - sampleSliderZ->setMaximum(200); - sampleSliderZ->setEnabled(false); - - QSlider *fontSizeSlider = new QSlider(Qt::Horizontal, widget); - fontSizeSlider->setTickInterval(1); - fontSizeSlider->setMinimum(1); - fontSizeSlider->setValue(20); - fontSizeSlider->setMaximum(100); - - QFontComboBox *fontList = new QFontComboBox(widget); - - QComboBox *shadowQuality = new QComboBox(widget); - shadowQuality->addItem(QStringLiteral("None")); - shadowQuality->addItem(QStringLiteral("Low")); - shadowQuality->addItem(QStringLiteral("Medium")); - shadowQuality->addItem(QStringLiteral("High")); - shadowQuality->setCurrentIndex(1); - - 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, 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(multiDataButton, 0, Qt::AlignTop); - vLayout->addWidget(changeSingleDataButton, 0, Qt::AlignTop); - vLayout->addWidget(changeRowButton, 0, Qt::AlignTop); - vLayout->addWidget(changeRowsButton, 0, Qt::AlignTop); - vLayout->addWidget(removeRowButton, 0, Qt::AlignTop); - vLayout->addWidget(removeRowsButton, 0, Qt::AlignTop); - vLayout->addWidget(themeButton, 0, Qt::AlignTop); - vLayout->addWidget(labelButton, 0, Qt::AlignTop); - vLayout->addWidget(styleButton, 0, Qt::AlignTop); - vLayout->addWidget(cameraButton, 0, Qt::AlignTop); - vLayout->addWidget(selectionButton, 0, Qt::AlignTop); - vLayout->addWidget(backgroundCheckBox); - vLayout->addWidget(gridCheckBox); - vLayout->addWidget(new QLabel(QStringLiteral("Adjust shadow quality"))); - vLayout->addWidget(shadowQuality); - 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(); - - ChartModifier *modifier = new ChartModifier(widgetchart); - - QObject::connect(rotationSliderX, &QSlider::valueChanged, modifier, &ChartModifier::rotateX); - QObject::connect(rotationSliderY, &QSlider::valueChanged, modifier, &ChartModifier::rotateY); - - 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(shadowQuality, SIGNAL(currentIndexChanged(int)), modifier, - SLOT(changeShadowQuality(int))); - QObject::connect(modifier, &ChartModifier::shadowQualityChanged, shadowQuality, - &QComboBox::setCurrentIndex); - QObject::connect(widgetchart, &Q3DBars::shadowQualityChanged, modifier, - &ChartModifier::shadowQualityUpdatedByVisual); - - QObject::connect(fontSizeSlider, &QSlider::valueChanged, modifier, - &ChartModifier::changeFontSize); - - QObject::connect(styleButton, &QPushButton::clicked, modifier, &ChartModifier::changeStyle); - QObject::connect(cameraButton, &QPushButton::clicked, modifier, - &ChartModifier::changePresetCamera); - QObject::connect(themeButton, &QPushButton::clicked, modifier, &ChartModifier::changeTheme); - QObject::connect(labelButton, &QPushButton::clicked, modifier, - &ChartModifier::changeTransparency); - QObject::connect(dataButton, &QPushButton::clicked, modifier, &ChartModifier::addRow); - QObject::connect(multiDataButton, &QPushButton::clicked, modifier, &ChartModifier::addRows); - QObject::connect(changeSingleDataButton, &QPushButton::clicked, modifier, &ChartModifier::changeItem); - QObject::connect(changeRowButton, &QPushButton::clicked, modifier, &ChartModifier::changeRow); - QObject::connect(changeRowsButton, &QPushButton::clicked, modifier, &ChartModifier::changeRows); - QObject::connect(removeRowButton, &QPushButton::clicked, modifier, &ChartModifier::removeRow); - QObject::connect(removeRowsButton, &QPushButton::clicked, modifier, &ChartModifier::removeRows); - QObject::connect(selectionButton, &QPushButton::clicked, modifier, - &ChartModifier::changeSelectionMode); - - QObject::connect(fontList, &QFontComboBox::currentFontChanged, modifier, - &ChartModifier::changeFont); - - QObject::connect(backgroundCheckBox, &QCheckBox::stateChanged, modifier, - &ChartModifier::setBackgroundEnabled); - QObject::connect(gridCheckBox, &QCheckBox::stateChanged, modifier, - &ChartModifier::setGridEnabled); - - QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, rotationSliderX, - &QSlider::setEnabled); - QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, rotationSliderX, - &QSlider::setValue); - QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, rotationSliderY, - &QSlider::setEnabled); - QObject::connect(rotationCheckBox, &QCheckBox::stateChanged, rotationSliderY, - &QSlider::setValue); - - QObject::connect(staticCheckBox, &QCheckBox::stateChanged, dataButton, - &QPushButton::setEnabled); - QObject::connect(staticCheckBox, &QCheckBox::stateChanged, multiDataButton, - &QPushButton::setEnabled); - QObject::connect(staticCheckBox, &QCheckBox::stateChanged, changeSingleDataButton, - &QPushButton::setEnabled); - QObject::connect(staticCheckBox, &QCheckBox::stateChanged, changeRowButton, - &QPushButton::setEnabled); - QObject::connect(staticCheckBox, &QCheckBox::stateChanged, changeRowsButton, - &QPushButton::setEnabled); - QObject::connect(staticCheckBox, &QCheckBox::stateChanged, removeRowButton, - &QPushButton::setEnabled); - QObject::connect(staticCheckBox, &QCheckBox::stateChanged, removeRowsButton, - &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(); - - return app.exec(); -} diff --git a/examples/widget/widget.pro b/examples/widget/widget.pro deleted file mode 100644 index 2b4078a4..00000000 --- a/examples/widget/widget.pro +++ /dev/null @@ -1,10 +0,0 @@ -!include( ../examples.pri ) { - error( "Couldn't find the examples.pri file!" ) -} - -SOURCES += main.cpp chart.cpp -HEADERS += chart.h - -QT += widgets - -INSTALLS += target |