1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the Qt Charts module of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:GPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU
19** General Public License version 3 or (at your option) any later version
20** approved by the KDE Free Qt Foundation. The licenses are as published by
21** the Free Software Foundation and appearing in the file LICENSE.GPL3
22** included in the packaging of this file. Please review the following
23** information to ensure the GNU General Public License requirements will
24** be met: https://www.gnu.org/licenses/gpl-3.0.html.
25**
26** $QT_END_LICENSE$
27**
28****************************************************************************/
29
30#ifndef MAINWINDOW_H
31#define MAINWINDOW_H
32
33#include <QtCharts/QPolarChart>
34#include <QtWidgets/QMainWindow>
35#include <QtGui/QFont>
36#include <QtCharts/QChart>
37#include <QtCharts/QScatterSeries>
38#include <QtCharts/QLineSeries>
39#include <QtCharts/QSplineSeries>
40#include <QtCharts/QAreaSeries>
41
42QT_BEGIN_NAMESPACE
43class QBrush;
44class QPen;
45
46namespace Ui {
47class MainWindow;
48}
49QT_END_NAMESPACE
50
51
52QT_CHARTS_USE_NAMESPACE
53
54class MainWindow : public QMainWindow
55{
56 Q_OBJECT
57
58public:
59 explicit MainWindow(QWidget *parent = 0);
60 ~MainWindow();
61
62public slots:
63 void angularTicksChanged(int value);
64 void radialTicksChanged(int value);
65 void angularMinorTicksChanged(int value);
66 void radialMinorTicksChanged(int value);
67 void anglesChanged(int value);
68 void angularMinChanged(double value);
69 void angularMaxChanged(double value);
70 void radialMinChanged(double value);
71 void radialMaxChanged(double value);
72 void angularShadesIndexChanged(int index);
73 void radialShadesIndexChanged(int index);
74 void labelFormatEdited(const QString &text);
75 void labelFontChanged(const QFont &font);
76 void labelFontSizeChanged(int value);
77 void animationIndexChanged(int index);
78 void labelsIndexChanged(int index);
79 void titleIndexChanged(int index);
80 void titleFontChanged(const QFont &font);
81 void titleFontSizeChanged(int value);
82 void gridIndexChanged(int index);
83 void minorGridIndexChanged(int index);
84 void gridLineColorIndexChanged(int index);
85 void arrowIndexChanged(int index);
86 void angularRangeChanged(qreal min, qreal max);
87 void radialRangeChanged(qreal min, qreal max);
88 void angularAxisIndexChanged(int index);
89 void radialAxisIndexChanged(int index);
90 void logBaseChanged(double value);
91 void niceNumbersChecked();
92 void dateFormatEdited(const QString &text);
93 void moreCategoriesChecked();
94 void categoryLabelLocationChecked();
95 void series1CheckBoxChecked();
96 void series2CheckBoxChecked();
97 void series3CheckBoxChecked();
98 void series4CheckBoxChecked();
99 void series5CheckBoxChecked();
100 void series6CheckBoxChecked();
101 void series7CheckBoxChecked();
102 void themeIndexChanged(int index);
103 void seriesHovered(QPointF point, bool state);
104 void seriesClicked(const QPointF &point);
105 void backgroundIndexChanged(int index);
106 void plotAreaIndexChanged(int index);
107
108private:
109 enum AxisMode {
110 AxisModeNone,
111 AxisModeValue,
112 AxisModeLogValue,
113 AxisModeDateTime,
114 AxisModeCategory
115 };
116
117 void initXYValueChart();
118 void setAngularAxis(AxisMode mode);
119 void setRadialAxis(AxisMode mode);
120
121 void applyRanges();
122 void applyCategories();
123
124 Ui::MainWindow *ui;
125
126 int m_angularTickCount;
127 int m_radialTickCount;
128 int m_angularMinorTickCount;
129 int m_radialMinorTickCount;
130 qreal m_labelsAngle;
131 qreal m_angularMin;
132 qreal m_angularMax;
133 qreal m_radialMin;
134 qreal m_radialMax;
135 bool m_angularShadesVisible;
136 bool m_radialShadesVisible;
137 bool m_labelsVisible;
138 bool m_titleVisible;
139 bool m_gridVisible;
140 bool m_arrowVisible;
141 bool m_minorGridVisible;
142 bool m_minorArrowVisible;
143 QBrush *m_angularShadesBrush;
144 QBrush *m_radialShadesBrush;
145 QBrush *m_labelBrush;
146 QBrush *m_titleBrush;
147 QBrush *m_backgroundBrush;
148 QBrush *m_plotAreaBackgroundBrush;
149 QPen *m_angularShadesPen;
150 QPen *m_radialShadesPen;
151 QPen *m_gridPen;
152 QPen *m_arrowPen;
153 QPen *m_minorGridPen;
154 QPen *m_backgroundPen;
155 QPen *m_plotAreaBackgroundPen;
156 QString m_labelFormat;
157 QFont m_currentLabelFont;
158 QFont m_currentTitleFont;
159 QChart::AnimationOptions m_animationOptions;
160 QString m_angularTitle;
161 QString m_radialTitle;
162 qreal m_base;
163 QString m_dateFormat;
164
165 QPolarChart *m_chart;
166 QAbstractAxis *m_angularAxis;
167 QAbstractAxis *m_radialAxis;
168 AxisMode m_angularAxisMode;
169 AxisMode m_radialAxisMode;
170 bool m_moreCategories;
171
172 QScatterSeries *m_series1;
173 QLineSeries *m_series2;
174 QLineSeries *m_series3;
175 QLineSeries *m_series4;
176 QAreaSeries *m_series5;
177 QSplineSeries *m_series6;
178 QScatterSeries *m_series7;
179};
180
181#endif // MAINWINDOW_H
182

source code of qtcharts/tests/manual/polarcharttest/mainwindow.h