diff options
Diffstat (limited to 'demos/nesteddonuts/widget.cpp')
-rw-r--r-- | demos/nesteddonuts/widget.cpp | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/demos/nesteddonuts/widget.cpp b/demos/nesteddonuts/widget.cpp deleted file mode 100644 index fdde6a64..00000000 --- a/demos/nesteddonuts/widget.cpp +++ /dev/null @@ -1,128 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Qt Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** 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 -** $QT_END_LICENSE$ -** -****************************************************************************/ -#include "widget.h" -#include <QChartView> -#include <QChart> -#include <QLegend> -#include <QPieSeries> -#include <QPieSlice> -#include <QTime> -#include <QGridLayout> -#include <QTimer> - -QTCOMMERCIALCHART_USE_NAMESPACE - -Widget::Widget(QWidget *parent) - : QWidget(parent) -{ - setMinimumSize(800, 600); - qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime())); - - //! [1] - QChartView *chartView = new QChartView; - chartView->setRenderHint(QPainter::Antialiasing); - QChart *chart = chartView->chart(); - chart->legend()->setVisible(false); - chart->setTitle("Nested donuts demo"); - chart->setAnimationOptions(QChart::AllAnimations); - //! [1] - - //! [2] - qreal minSize = 0.1; - qreal maxSize = 0.9; - int donutCount = 5; - //! [2] - - //! [3] - for (int i = 0; i < donutCount; i++) { - QPieSeries *donut = new QPieSeries; - int sliceCount = 3 + qrand() % 3; - for (int j = 0; j < sliceCount; j++) { - qreal value = 100 + qrand() % 100; - QPieSlice *slice = new QPieSlice(QString("%1").arg(value), value); - slice->setLabelVisible(true); - slice->setLabelColor(Qt::white); - slice->setLabelPosition(QPieSlice::LabelInsideTangential); - connect(slice, SIGNAL(hovered(bool)), this, SLOT(explodeSlice(bool))); - donut->append(slice); - donut->setHoleSize(minSize + i * (maxSize - minSize) / donutCount); - donut->setPieSize(minSize + (i + 1) * (maxSize - minSize) / donutCount); - } - m_donuts.append(donut); - chartView->chart()->addSeries(donut); - } - //! [3] - - // create main layout - //! [4] - QGridLayout *mainLayout = new QGridLayout; - mainLayout->addWidget(chartView, 1, 1); - setLayout(mainLayout); - //! [4] - - //! [5] - updateTimer = new QTimer(this); - connect(updateTimer, SIGNAL(timeout()), this, SLOT(updateRotation())); - updateTimer->start(1250); - //! [5] -} - -Widget::~Widget() -{ - -} - -//! [6] -void Widget::updateRotation() -{ - for (int i = 0; i < m_donuts.count(); i++) { - QPieSeries *donut = m_donuts.at(i); - qreal phaseShift = -50 + qrand() % 100; - donut->setPieStartAngle(donut->pieStartAngle() + phaseShift); - donut->setPieEndAngle(donut->pieEndAngle() + phaseShift); - } -} -//! [6] - -//! [7] -void Widget::explodeSlice(bool exploded) -{ - QPieSlice *slice = qobject_cast<QPieSlice *>(sender()); - if (exploded) { - updateTimer->stop(); - qreal sliceStartAngle = slice->startAngle(); - qreal sliceEndAngle = slice->startAngle() + slice->angleSpan(); - - QPieSeries *donut = slice->series(); - qreal seriesIndex = m_donuts.indexOf(donut); - for (int i = seriesIndex + 1; i < m_donuts.count(); i++) { - m_donuts.at(i)->setPieStartAngle(sliceEndAngle); - m_donuts.at(i)->setPieEndAngle(360 + sliceStartAngle); - } - } else { - for (int i = 0; i < m_donuts.count(); i++) { - m_donuts.at(i)->setPieStartAngle(0); - m_donuts.at(i)->setPieEndAngle(360); - } - updateTimer->start(); - } - slice->setExploded(exploded); -} -//! [7] |