##// END OF EJS Templates
animation for horizontal barchart
sauimone -
r1683:93894274373c
parent child
Show More
@@ -1,94 +1,95
1 1 /****************************************************************************
2 2 **
3 3 ** Copyright (C) 2012 Digia Plc
4 4 ** All rights reserved.
5 5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 6 **
7 7 ** This file is part of the Qt Commercial Charts Add-on.
8 8 **
9 9 ** $QT_BEGIN_LICENSE$
10 10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 11 ** accordance with the Qt Commercial License Agreement provided with the
12 12 ** Software or, alternatively, in accordance with the terms contained in
13 13 ** a written agreement between you and Digia.
14 14 **
15 15 ** If you have questions regarding the use of this file, please use
16 16 ** contact form at http://qt.digia.com
17 17 ** $QT_END_LICENSE$
18 18 **
19 19 ****************************************************************************/
20 20
21 21 #include <QApplication>
22 22 #include <QMainWindow>
23 23 #include <QChartView>
24 24 #include <QBarSeries>
25 25 #include <QBarSet>
26 26 #include <QLegend>
27 27 #include <QBarCategoriesAxis>
28 28 #include <QHorizontalBarSeries>
29 29
30 30 QTCOMMERCIALCHART_USE_NAMESPACE
31 31
32 32 int main(int argc, char *argv[])
33 33 {
34 34 QApplication a(argc, argv);
35 35
36 36 //![1]
37 37 QBarSet *set0 = new QBarSet("Jane");
38 38 QBarSet *set1 = new QBarSet("John");
39 39 QBarSet *set2 = new QBarSet("Axel");
40 40 QBarSet *set3 = new QBarSet("Mary");
41 41 QBarSet *set4 = new QBarSet("Samantha");
42 42
43 43 *set0 << 1 << 2 << 3 << 4 << 5 << 6;
44 44 *set1 << 5 << 0 << 0 << 4 << 0 << 7;
45 45 *set2 << 3 << 5 << 8 << 13 << 8 << 5;
46 46 *set3 << 5 << 6 << 7 << 3 << 4 << 5;
47 47 *set4 << 9 << 7 << 5 << 3 << 1 << 2;
48 48 //![1]
49 49
50 50 //![2]
51 51 QHorizontalBarSeries *series = new QHorizontalBarSeries();
52 52 series->append(set0);
53 53 series->append(set1);
54 54 series->append(set2);
55 55 series->append(set3);
56 56 series->append(set4);
57 57
58 58 //![2]
59 59
60 60 //![3]
61 61 QChart* chart = new QChart();
62 62 chart->addSeries(series);
63 63 chart->setTitle("Simple horizontal barchart example");
64 64 chart->createDefaultAxes();
65 chart->setAnimationOptions(QChart::SeriesAnimations);
65 66 //![3]
66 67
67 68 //![4]
68 69 QStringList categories;
69 70 categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
70 71 QBarCategoriesAxis* axis = new QBarCategoriesAxis();
71 72 axis->append(categories);
72 73 chart->createDefaultAxes();
73 74 chart->setAxisY(axis,series);
74 75 //![4]
75 76
76 77 //![5]
77 78 chart->legend()->setVisible(true);
78 79 chart->legend()->setAlignment(Qt::AlignBottom);
79 80 //![5]
80 81
81 82 //![6]
82 83 QChartView* chartView = new QChartView(chart);
83 84 chartView->setRenderHint(QPainter::Antialiasing);
84 85 //![6]
85 86
86 87 //![7]
87 88 QMainWindow window;
88 89 window.setCentralWidget(chartView);
89 90 window.resize(400, 300);
90 91 window.show();
91 92 //![7]
92 93
93 94 return a.exec();
94 95 }
@@ -1,51 +1,62
1 1 /****************************************************************************
2 2 **
3 3 ** Copyright (C) 2012 Digia Plc
4 4 ** All rights reserved.
5 5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 6 **
7 7 ** This file is part of the Qt Commercial Charts Add-on.
8 8 **
9 9 ** $QT_BEGIN_LICENSE$
10 10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 11 ** accordance with the Qt Commercial License Agreement provided with the
12 12 ** Software or, alternatively, in accordance with the terms contained in
13 13 ** a written agreement between you and Digia.
14 14 **
15 15 ** If you have questions regarding the use of this file, please use
16 16 ** contact form at http://qt.digia.com
17 17 ** $QT_END_LICENSE$
18 18 **
19 19 ****************************************************************************/
20 20
21 21 #include "horizontalbaranimation_p.h"
22 22 #include "abstractbarchartitem_p.h"
23 23 #include <QTimer>
24 24
25 25 Q_DECLARE_METATYPE(QVector<QRectF>)
26 26
27 27 QTCOMMERCIALCHART_BEGIN_NAMESPACE
28 28
29 29 HorizontalBarAnimation::HorizontalBarAnimation(AbstractBarChartItem *item) :
30 30 AbstractBarAnimation(item)
31 31 {
32 32 }
33 33
34 34 HorizontalBarAnimation::~HorizontalBarAnimation()
35 35 {
36 36
37 37 }
38 38
39 39
40 40 QVariant HorizontalBarAnimation::interpolated(const QVariant &from, const QVariant &to, qreal progress) const
41 41 {
42 // TODO:
43 Q_UNUSED(from);
44 Q_UNUSED(to);
45 Q_UNUSED(progress);
46 return to;
42 QVector<QRectF> startVector = qVariantValue<QVector<QRectF> >(from);
43 QVector<QRectF> endVector = qVariantValue<QVector<QRectF> >(to);
44 QVector<QRectF> result;
45
46 Q_ASSERT(startVector.count() == endVector.count());
47
48 for(int i = 0; i < startVector.count(); i++) {
49 qreal h = endVector[i].height();
50 qreal w = startVector[i].width() + ((endVector[i].width() - startVector[i].width()) * progress);
51 qreal x = endVector[i].topLeft().x();
52 qreal y = endVector[i].topLeft().y();
53
54 QRectF value(x,y,w,h);
55 result << value;
56 }
57 return qVariantFromValue(result);
47 58 }
48 59
49 60 #include "moc_horizontalbaranimation_p.cpp"
50 61
51 62 QTCOMMERCIALCHART_END_NAMESPACE
General Comments 0
You need to be logged in to leave comments. Login now