##// END OF EJS Templates
Disabled some series from tablemodelchart app
Marek Rosa -
r1091:fd8eb57fdd5f
parent child
Show More
@@ -1,394 +1,406
1 /****************************************************************************
1 /****************************************************************************
2 **
2 **
3 ** Copyright (C) 2012 Digia Plc
3 ** Copyright (C) 2012 Digia Plc
4 ** All rights reserved.
4 ** All rights reserved.
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
5 ** For any questions to Digia, please use contact form at http://qt.digia.com
6 **
6 **
7 ** This file is part of the Qt Commercial Charts Add-on.
7 ** This file is part of the Qt Commercial Charts Add-on.
8 **
8 **
9 ** $QT_BEGIN_LICENSE$
9 ** $QT_BEGIN_LICENSE$
10 ** Licensees holding valid Qt Commercial licenses may use this file in
10 ** Licensees holding valid Qt Commercial licenses may use this file in
11 ** accordance with the Qt Commercial License Agreement provided with the
11 ** accordance with the Qt Commercial License Agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia.
13 ** a written agreement between you and Digia.
14 **
14 **
15 ** If you have questions regarding the use of this file, please use
15 ** If you have questions regarding the use of this file, please use
16 ** contact form at http://qt.digia.com
16 ** contact form at http://qt.digia.com
17 ** $QT_END_LICENSE$
17 ** $QT_END_LICENSE$
18 **
18 **
19 ****************************************************************************/
19 ****************************************************************************/
20
20
21 #include "tablewidget.h"
21 #include "tablewidget.h"
22 #include <QGridLayout>
22 #include <QGridLayout>
23 #include <QTableView>
23 #include <QTableView>
24 #include <QChart>
24 #include <QChart>
25 #include <QStyledItemDelegate>
25 #include <QStyledItemDelegate>
26 #include <QLineSeries>
26 #include <QLineSeries>
27 #include <QSplineSeries>
27 #include <QSplineSeries>
28 #include <QScatterSeries>
28 #include <QScatterSeries>
29 #include "customtablemodel.h"
29 #include "customtablemodel.h"
30 #include <QPieSeries>
30 #include <QPieSeries>
31 #include <QPieSlice>
31 #include <QPieSlice>
32 #include <QAreaSeries>
32 #include <QAreaSeries>
33 #include <QBarSeries>
33 #include <QBarSeries>
34 #include <QBarSet>
34 #include <QBarSet>
35 #include <QPushButton>
35 #include <QPushButton>
36 #include <QRadioButton>
36 #include <QRadioButton>
37 #include <QLabel>
37 #include <QLabel>
38 #include <QSpinBox>
38 #include <QSpinBox>
39 #include <QTime>
39 #include <QTime>
40
40
41 TableWidget::TableWidget(QWidget *parent)
41 TableWidget::TableWidget(QWidget *parent)
42 : QWidget(parent)
42 : QWidget(parent)
43 // specialPie(0)
43 // specialPie(0)
44 {
44 {
45 setGeometry(1900, 100, 1000, 600);
45 setGeometry(1900, 100, 1000, 600);
46 qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
46 qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
47 // create simple model for storing data
47 // create simple model for storing data
48 // user's table data model
48 // user's table data model
49 m_model = new CustomTableModel;
49 m_model = new CustomTableModel;
50 m_tableView = new QTableView;
50 m_tableView = new QTableView;
51 m_tableView->setModel(m_model);
51 m_tableView->setModel(m_model);
52 m_tableView->setMinimumHeight(300);
52 m_tableView->setMinimumHeight(300);
53 m_chart = new QChart;
53 m_chart = new QChart;
54 m_chart->legend()->setVisible(true);
54 m_chart->legend()->setVisible(true);
55 m_chart->setAnimationOptions(QChart::SeriesAnimations);
55 m_chart->setAnimationOptions(QChart::SeriesAnimations);
56 m_chartView = new QChartView(m_chart);
56 m_chartView = new QChartView(m_chart);
57 m_chartView->setRenderHint(QPainter::Antialiasing);
57 m_chartView->setRenderHint(QPainter::Antialiasing);
58 m_chartView->setMinimumSize(640, 480);
58 m_chartView->setMinimumSize(640, 480);
59
59
60 // add, remove data buttons
60 // add, remove data buttons
61 QPushButton* addRowAboveButton = new QPushButton("Add row above");
61 QPushButton* addRowAboveButton = new QPushButton("Add row above");
62 connect(addRowAboveButton, SIGNAL(clicked()), this, SLOT(addRowAbove()));
62 connect(addRowAboveButton, SIGNAL(clicked()), this, SLOT(addRowAbove()));
63
63
64 QPushButton* addRowBelowButton = new QPushButton("Add row below");
64 QPushButton* addRowBelowButton = new QPushButton("Add row below");
65 connect(addRowBelowButton, SIGNAL(clicked()), this, SLOT(addRowBelow()));
65 connect(addRowBelowButton, SIGNAL(clicked()), this, SLOT(addRowBelow()));
66
66
67 QPushButton* removeRowButton = new QPushButton("Remove row");
67 QPushButton* removeRowButton = new QPushButton("Remove row");
68 connect(removeRowButton, SIGNAL(clicked()), this, SLOT(removeRow()));
68 connect(removeRowButton, SIGNAL(clicked()), this, SLOT(removeRow()));
69
69
70 QPushButton* addColumnRightButton = new QPushButton("Add column to the right");
70 QPushButton* addColumnRightButton = new QPushButton("Add column to the right");
71 connect(addColumnRightButton, SIGNAL(clicked()), this, SLOT(addColumnRight()));
71 connect(addColumnRightButton, SIGNAL(clicked()), this, SLOT(addColumnRight()));
72
72
73 QPushButton* removeColumnButton = new QPushButton("Remove column");
73 QPushButton* removeColumnButton = new QPushButton("Remove column");
74 connect(removeColumnButton, SIGNAL(clicked()), this, SLOT(removeColumn()));
74 connect(removeColumnButton, SIGNAL(clicked()), this, SLOT(removeColumn()));
75
75
76 QPushButton* specialPieButton = new QPushButton("Test pie");
76 QPushButton* specialPieButton = new QPushButton("Test pie");
77 connect(specialPieButton, SIGNAL(clicked()), this, SLOT(testPie()));
77 connect(specialPieButton, SIGNAL(clicked()), this, SLOT(testPie()));
78
78
79
79
80 QLabel *spinBoxLabel = new QLabel("Rows affected:");
80 QLabel *spinBoxLabel = new QLabel("Rows affected:");
81
81
82 // spin box for setting number of affected items (add, remove)
82 // spin box for setting number of affected items (add, remove)
83 m_linesCountSpinBox = new QSpinBox;
83 m_linesCountSpinBox = new QSpinBox;
84 m_linesCountSpinBox->setRange(1, 10);
84 m_linesCountSpinBox->setRange(1, 10);
85 m_linesCountSpinBox->setValue(1);
85 m_linesCountSpinBox->setValue(1);
86
86
87 // buttons layout
87 // buttons layout
88 QVBoxLayout* buttonsLayout = new QVBoxLayout;
88 QVBoxLayout* buttonsLayout = new QVBoxLayout;
89 buttonsLayout->addWidget(spinBoxLabel);
89 buttonsLayout->addWidget(spinBoxLabel);
90 buttonsLayout->addWidget(m_linesCountSpinBox);
90 buttonsLayout->addWidget(m_linesCountSpinBox);
91 buttonsLayout->addWidget(addRowAboveButton);
91 buttonsLayout->addWidget(addRowAboveButton);
92 buttonsLayout->addWidget(addRowBelowButton);
92 buttonsLayout->addWidget(addRowBelowButton);
93 buttonsLayout->addWidget(removeRowButton);
93 buttonsLayout->addWidget(removeRowButton);
94 buttonsLayout->addWidget(addColumnRightButton);
94 buttonsLayout->addWidget(addColumnRightButton);
95 buttonsLayout->addWidget(removeColumnButton);
95 buttonsLayout->addWidget(removeColumnButton);
96 // buttonsLayout->addWidget(specialPieButton);
96 // buttonsLayout->addWidget(specialPieButton);
97 buttonsLayout->addStretch();
97 buttonsLayout->addStretch();
98
98
99 // chart type radio buttons
99 // chart type radio buttons
100 m_lineRadioButton = new QRadioButton("Line");
100 m_lineRadioButton = new QRadioButton("Line");
101 m_splineRadioButton = new QRadioButton("Spline");
101 m_splineRadioButton = new QRadioButton("Spline");
102 m_scatterRadioButton = new QRadioButton("Scatter");
102 m_scatterRadioButton = new QRadioButton("Scatter");
103 m_pieRadioButton = new QRadioButton("Pie");
103 m_pieRadioButton = new QRadioButton("Pie");
104 m_areaRadioButton = new QRadioButton("Area");
104 m_areaRadioButton = new QRadioButton("Area");
105 m_barRadioButton = new QRadioButton("Bar");
105 m_barRadioButton = new QRadioButton("Bar");
106
106
107 connect(m_lineRadioButton, SIGNAL(toggled(bool)), this, SLOT(updateChartType(bool)));
107 connect(m_lineRadioButton, SIGNAL(toggled(bool)), this, SLOT(updateChartType(bool)));
108 connect(m_splineRadioButton, SIGNAL(toggled(bool)), this, SLOT(updateChartType(bool)));
108 connect(m_splineRadioButton, SIGNAL(toggled(bool)), this, SLOT(updateChartType(bool)));
109 connect(m_scatterRadioButton, SIGNAL(toggled(bool)), this, SLOT(updateChartType(bool)));
109 connect(m_scatterRadioButton, SIGNAL(toggled(bool)), this, SLOT(updateChartType(bool)));
110 connect(m_pieRadioButton, SIGNAL(toggled(bool)), this, SLOT(updateChartType(bool)));
110 connect(m_pieRadioButton, SIGNAL(toggled(bool)), this, SLOT(updateChartType(bool)));
111 connect(m_areaRadioButton, SIGNAL(toggled(bool)), this, SLOT(updateChartType(bool)));
111 connect(m_areaRadioButton, SIGNAL(toggled(bool)), this, SLOT(updateChartType(bool)));
112 connect(m_barRadioButton, SIGNAL(toggled(bool)), this, SLOT(updateChartType(bool)));
112 connect(m_barRadioButton, SIGNAL(toggled(bool)), this, SLOT(updateChartType(bool)));
113 m_lineRadioButton->setChecked(true);
113 m_lineRadioButton->setChecked(true);
114
114
115 // radio buttons layout
115 // radio buttons layout
116 QVBoxLayout* radioLayout = new QVBoxLayout;
116 QVBoxLayout* radioLayout = new QVBoxLayout;
117 radioLayout->addWidget(m_lineRadioButton);
117 radioLayout->addWidget(m_lineRadioButton);
118 radioLayout->addWidget(m_splineRadioButton);
118 // radioLayout->addWidget(m_splineRadioButton);
119 radioLayout->addWidget(m_scatterRadioButton);
119 // radioLayout->addWidget(m_scatterRadioButton);
120 radioLayout->addWidget(m_pieRadioButton);
120 radioLayout->addWidget(m_pieRadioButton);
121 radioLayout->addWidget(m_areaRadioButton);
121 // radioLayout->addWidget(m_areaRadioButton);
122 radioLayout->addWidget(m_barRadioButton);
122 radioLayout->addWidget(m_barRadioButton);
123 radioLayout->addStretch();
123 radioLayout->addStretch();
124
124
125 // create main layout
125 // create main layout
126 QGridLayout* mainLayout = new QGridLayout;
126 QGridLayout* mainLayout = new QGridLayout;
127 mainLayout->addLayout(buttonsLayout, 1, 1);
127 mainLayout->addLayout(buttonsLayout, 1, 1);
128 mainLayout->addLayout(radioLayout, 2, 1);
128 mainLayout->addLayout(radioLayout, 2, 1);
129 mainLayout->addWidget(m_tableView, 1, 0);
129 mainLayout->addWidget(m_tableView, 1, 0);
130 mainLayout->addWidget(m_chartView, 2, 0);
130 mainLayout->addWidget(m_chartView, 2, 0);
131 setLayout(mainLayout);
131 setLayout(mainLayout);
132 m_lineRadioButton->setFocus();
132 m_lineRadioButton->setFocus();
133 }
133 }
134
134
135 void TableWidget::addRowAbove()
135 void TableWidget::addRowAbove()
136 {
136 {
137 m_model->insertRows(m_tableView->currentIndex().row(), m_linesCountSpinBox->value());
137 m_model->insertRows(m_tableView->currentIndex().row(), m_linesCountSpinBox->value());
138
138
139 }
139 }
140
140
141 void TableWidget::addRowBelow()
141 void TableWidget::addRowBelow()
142 {
142 {
143 m_model->insertRows(m_tableView->currentIndex().row() + 1, m_linesCountSpinBox->value());
143 m_model->insertRows(m_tableView->currentIndex().row() + 1, m_linesCountSpinBox->value());
144
144
145 }
145 }
146
146
147 void TableWidget::removeRow()
147 void TableWidget::removeRow()
148 {
148 {
149 m_model->removeRows(m_tableView->currentIndex().row(), qMin(m_model->rowCount() - m_tableView->currentIndex().row(), m_linesCountSpinBox->value()));
149 m_model->removeRows(m_tableView->currentIndex().row(), qMin(m_model->rowCount() - m_tableView->currentIndex().row(), m_linesCountSpinBox->value()));
150 }
150 }
151
151
152 void TableWidget::addColumnRight()
152 void TableWidget::addColumnRight()
153 {
153 {
154 m_model->insertColumns(m_tableView->currentIndex().column() + 1, m_linesCountSpinBox->value());
154 m_model->insertColumns(m_tableView->currentIndex().column() + 1, m_linesCountSpinBox->value());
155 }
155 }
156
156
157 void TableWidget::removeColumn()
157 void TableWidget::removeColumn()
158 {
158 {
159 m_model->removeColumns(m_tableView->currentIndex().column(), qMin(m_model->columnCount() - m_tableView->currentIndex().column(), m_linesCountSpinBox->value()));
159 m_model->removeColumns(m_tableView->currentIndex().column(), qMin(m_model->columnCount() - m_tableView->currentIndex().column(), m_linesCountSpinBox->value()));
160 }
160 }
161
161
162 void TableWidget::updateChartType(bool toggle)
162 void TableWidget::updateChartType(bool toggle)
163 {
163 {
164 // this if is needed, so that the function is only called once.
164 // this if is needed, so that the function is only called once.
165 // For the radioButton that was enabled.
165 // For the radioButton that was enabled.
166 if (toggle) {
166 if (toggle) {
167 // specialPie = 0;
167 // specialPie = 0;
168 m_chart->removeAllSeries();
168 m_chart->removeAllSeries();
169 m_chart->axisX()->setNiceNumbersEnabled(false);
169 m_chart->axisX()->setNiceNumbersEnabled(false);
170 m_chart->axisY()->setNiceNumbersEnabled(false);
170 m_chart->axisY()->setNiceNumbersEnabled(false);
171
171
172 // renable axes of the chart (pie hides them)
172 // renable axes of the chart (pie hides them)
173 // x axis
173 // x axis
174 QAxis *axis = m_chart->axisX();
174 QAxis *axis = m_chart->axisX();
175 axis->setAxisVisible(true);
175 axis->setAxisVisible(true);
176 axis->setGridLineVisible(true);
176 axis->setGridLineVisible(true);
177 axis->setLabelsVisible(true);
177 axis->setLabelsVisible(true);
178
178
179 // y axis
179 // y axis
180 axis = m_chart->axisY();
180 axis = m_chart->axisY();
181 axis->setAxisVisible(true);
181 axis->setAxisVisible(true);
182 axis->setGridLineVisible(true);
182 axis->setGridLineVisible(true);
183 axis->setLabelsVisible(true);
183 axis->setLabelsVisible(true);
184
184
185 m_model->clearMapping();
185 m_model->clearMapping();
186
186
187 QString seriesColorHex = "#000000";
187 QString seriesColorHex = "#000000";
188 QPen pen;
188 QPen pen;
189 pen.setWidth(2);
189 pen.setWidth(2);
190
190
191 if (m_lineRadioButton->isChecked())
191 if (m_lineRadioButton->isChecked())
192 {
192 {
193 m_chart->setAnimationOptions(QChart::NoAnimation);
194
193 // series 1
195 // series 1
194 m_series = new QLineSeries;
196 m_series = new QLineSeries;
195 m_series->setModel(m_model);
197 m_series->setModel(m_model);
196 m_series->setModelMapping(0,1, Qt::Vertical);
198 m_series->setModelMapping(0,1, Qt::Vertical);
197 m_series->setModelMappingRange(3, 4);
199 m_series->setModelMappingRange(3, 4);
198 m_chart->addSeries(m_series);
200 m_chart->addSeries(m_series);
199 seriesColorHex = "#" + QString::number(m_series->pen().color().rgb(), 16).right(6).toUpper();
201 seriesColorHex = "#" + QString::number(m_series->pen().color().rgb(), 16).right(6).toUpper();
200 m_model->addMapping(seriesColorHex, QRect(0, 3, 2, 4));
202 m_model->addMapping(seriesColorHex, QRect(0, 3, 2, 4));
201
203
202 // series 2
204 // series 2
203 m_series = new QLineSeries;
205 m_series = new QLineSeries;
204 m_series->setModel(m_model);
206 m_series->setModel(m_model);
205 m_series->setModelMapping(2,3, Qt::Vertical);
207 m_series->setModelMapping(2,3, Qt::Vertical);
206 m_chart->addSeries(m_series);
208 m_chart->addSeries(m_series);
207 seriesColorHex = "#" + QString::number(m_series->pen().color().rgb(), 16).right(6).toUpper();
209 seriesColorHex = "#" + QString::number(m_series->pen().color().rgb(), 16).right(6).toUpper();
208 m_model->addMapping(seriesColorHex, QRect(2, 0, 2, 1000));
210 m_model->addMapping(seriesColorHex, QRect(2, 0, 2, 1000));
209
211
210 // series 3
212 // series 3
211 m_series = new QLineSeries;
213 m_series = new QLineSeries;
212 m_series->setModel(m_model);
214 m_series->setModel(m_model);
213 m_series->setModelMapping(4,5, Qt::Vertical);
215 m_series->setModelMapping(4,5, Qt::Vertical);
214 m_series->setModelMappingRange(2, -1);
216 m_series->setModelMappingRange(2, -1);
215 m_chart->addSeries(m_series);
217 m_chart->addSeries(m_series);
216 seriesColorHex = "#" + QString::number(m_series->pen().color().rgb(), 16).right(6).toUpper();
218 seriesColorHex = "#" + QString::number(m_series->pen().color().rgb(), 16).right(6).toUpper();
217 m_model->addMapping(seriesColorHex, QRect(4, 2, 2, 1000));
219 m_model->addMapping(seriesColorHex, QRect(4, 2, 2, 1000));
218 }
220 }
219 else if (m_splineRadioButton->isChecked())
221 else if (m_splineRadioButton->isChecked())
220 {
222 {
223 m_chart->setAnimationOptions(QChart::NoAnimation);
224
221 // series 1
225 // series 1
222 m_series = new QSplineSeries;
226 m_series = new QSplineSeries;
223 m_series->setModel(m_model);
227 m_series->setModel(m_model);
224 m_series->setModelMapping(0,1, Qt::Vertical);
228 m_series->setModelMapping(0,1, Qt::Vertical);
225 // m_series->setModelMappingRange(1, 4);
229 // m_series->setModelMappingRange(1, 4);
226 // series->setModelMapping(0,1, Qt::Horizontal);
230 // series->setModelMapping(0,1, Qt::Horizontal);
227 m_chart->addSeries(m_series);
231 m_chart->addSeries(m_series);
228 seriesColorHex = "#" + QString::number(m_series->pen().color().rgb(), 16).right(6).toUpper();
232 seriesColorHex = "#" + QString::number(m_series->pen().color().rgb(), 16).right(6).toUpper();
229 m_model->addMapping(seriesColorHex, QRect(0, 0, 2, 1000));
233 m_model->addMapping(seriesColorHex, QRect(0, 0, 2, 1000));
230
234
231 // series 2
235 // series 2
232 m_series = new QSplineSeries;
236 m_series = new QSplineSeries;
233 m_series->setModel(m_model);
237 m_series->setModel(m_model);
234 m_series->setModelMapping(2,3, Qt::Vertical);
238 m_series->setModelMapping(2,3, Qt::Vertical);
235 m_series->setModelMappingRange(2, 4);
239 m_series->setModelMappingRange(2, 4);
236 // series->setModelMapping(2,3, Qt::Horizontal);
240 // series->setModelMapping(2,3, Qt::Horizontal);
237 m_chart->addSeries(m_series);
241 m_chart->addSeries(m_series);
238 seriesColorHex = "#" + QString::number(m_series->pen().color().rgb(), 16).right(6).toUpper();
242 seriesColorHex = "#" + QString::number(m_series->pen().color().rgb(), 16).right(6).toUpper();
239 m_model->addMapping(seriesColorHex, QRect(2, 2, 2, 4));
243 m_model->addMapping(seriesColorHex, QRect(2, 2, 2, 4));
240
244
241 // series 3
245 // series 3
242 m_series = new QSplineSeries;
246 m_series = new QSplineSeries;
243 m_series->setModel(m_model);
247 m_series->setModel(m_model);
244 m_series->setModelMapping(4,5, Qt::Vertical);
248 m_series->setModelMapping(4,5, Qt::Vertical);
245 m_series->setModelMappingRange(2, -1);
249 m_series->setModelMappingRange(2, -1);
246 // series->setModelMapping(4,5, Qt::Horizontal);
250 // series->setModelMapping(4,5, Qt::Horizontal);
247 m_chart->addSeries(m_series);
251 m_chart->addSeries(m_series);
248 seriesColorHex = "#" + QString::number(m_series->pen().color().rgb(), 16).right(6).toUpper();
252 seriesColorHex = "#" + QString::number(m_series->pen().color().rgb(), 16).right(6).toUpper();
249 m_model->addMapping(seriesColorHex, QRect(4, 2, 2, 1000));
253 m_model->addMapping(seriesColorHex, QRect(4, 2, 2, 1000));
250 }
254 }
251 else if (m_scatterRadioButton->isChecked())
255 else if (m_scatterRadioButton->isChecked())
252 {
256 {
257 m_chart->setAnimationOptions(QChart::NoAnimation);
258
253 // series 1
259 // series 1
254 m_series = new QScatterSeries;
260 m_series = new QScatterSeries;
255 m_series->setModel(m_model);
261 m_series->setModel(m_model);
256 m_series->setModelMapping(0,1, Qt::Vertical);
262 m_series->setModelMapping(0,1, Qt::Vertical);
257 // m_series->setModelMappingRange(2, 0);
263 // m_series->setModelMappingRange(2, 0);
258 // series->setModelMapping(0,1, Qt::Horizontal);
264 // series->setModelMapping(0,1, Qt::Horizontal);
259 m_chart->addSeries(m_series);
265 m_chart->addSeries(m_series);
260
266
261 seriesColorHex = "#" + QString::number(m_series->brush().color().rgb(), 16).right(6).toUpper();
267 seriesColorHex = "#" + QString::number(m_series->brush().color().rgb(), 16).right(6).toUpper();
262 m_model->addMapping(seriesColorHex, QRect(0, 2, 2, 1000));
268 m_model->addMapping(seriesColorHex, QRect(0, 2, 2, 1000));
263
269
264 // series 2
270 // series 2
265 m_series = new QScatterSeries;
271 m_series = new QScatterSeries;
266 m_series->setModel(m_model);
272 m_series->setModel(m_model);
267 m_series->setModelMapping(2,3, Qt::Vertical);
273 m_series->setModelMapping(2,3, Qt::Vertical);
268 // m_series->setModelMappingRange(1, 6);
274 // m_series->setModelMappingRange(1, 6);
269 // series->setModelMapping(2,3, Qt::Horizontal);
275 // series->setModelMapping(2,3, Qt::Horizontal);
270 m_chart->addSeries(m_series);
276 m_chart->addSeries(m_series);
271
277
272 seriesColorHex = "#" + QString::number(m_series->brush().color().rgb(), 16).right(6).toUpper();
278 seriesColorHex = "#" + QString::number(m_series->brush().color().rgb(), 16).right(6).toUpper();
273 m_model->addMapping(seriesColorHex, QRect(2, 1, 2, 6));
279 m_model->addMapping(seriesColorHex, QRect(2, 1, 2, 6));
274
280
275 // series 3
281 // series 3
276 m_series = new QScatterSeries;
282 m_series = new QScatterSeries;
277 m_series->setModel(m_model);
283 m_series->setModel(m_model);
278 m_series->setModelMapping(4,5, Qt::Vertical);
284 m_series->setModelMapping(4,5, Qt::Vertical);
279 // series->setModelMapping(4,5, Qt::Horizontal);
285 // series->setModelMapping(4,5, Qt::Horizontal);
280 m_chart->addSeries(m_series);
286 m_chart->addSeries(m_series);
281 seriesColorHex = "#" + QString::number(m_series->brush().color().rgb(), 16).right(6).toUpper();
287 seriesColorHex = "#" + QString::number(m_series->brush().color().rgb(), 16).right(6).toUpper();
282 m_model->addMapping(seriesColorHex, QRect(4, 0, 2, 1000));
288 m_model->addMapping(seriesColorHex, QRect(4, 0, 2, 1000));
283 }
289 }
284 else if (m_pieRadioButton->isChecked())
290 else if (m_pieRadioButton->isChecked())
285 {
291 {
292 m_chart->setAnimationOptions(QChart::SeriesAnimations);
293
286 // pie 1
294 // pie 1
287 QPieSeries* pieSeries = new QPieSeries;
295 QPieSeries* pieSeries = new QPieSeries;
288 pieSeries->setModel(m_model);
296 pieSeries->setModel(m_model);
289 pieSeries->setModelMappingRange(3, 3);
297 pieSeries->setModelMappingRange(3, 3);
290 pieSeries->setModelMapping(0,0, Qt::Vertical);
298 pieSeries->setModelMapping(0,0, Qt::Vertical);
291 pieSeries->setLabelsVisible(true);
299 pieSeries->setLabelsVisible(true);
292 pieSeries->setPieSize(0.35);
300 pieSeries->setPieSize(0.35);
293 pieSeries->setHorizontalPosition(0.2);
301 pieSeries->setHorizontalPosition(0.2);
294 pieSeries->setVerticalPosition(0.3);
302 pieSeries->setVerticalPosition(0.3);
295
303
296 m_chart->addSeries(pieSeries);
304 m_chart->addSeries(pieSeries);
297 seriesColorHex = "#" + QString::number(pieSeries->slices().at(pieSeries->slices().count()/2)->brush().color().rgb(), 16).right(6).toUpper();
305 seriesColorHex = "#" + QString::number(pieSeries->slices().at(pieSeries->slices().count()/2)->brush().color().rgb(), 16).right(6).toUpper();
298 m_model->addMapping(seriesColorHex, QRect(0, 3, 1, 3));
306 m_model->addMapping(seriesColorHex, QRect(0, 3, 1, 3));
299
307
300 // pie 2
308 // pie 2
301 pieSeries = new QPieSeries;
309 pieSeries = new QPieSeries;
302 pieSeries->setModel(m_model);
310 pieSeries->setModel(m_model);
303 pieSeries->setModelMappingRange(2, -1);
311 pieSeries->setModelMappingRange(2, -1);
304 pieSeries->setModelMapping(1,1, Qt::Vertical);
312 pieSeries->setModelMapping(1,1, Qt::Vertical);
305 pieSeries->setLabelsVisible(true);
313 pieSeries->setLabelsVisible(true);
306 pieSeries->setPieSize(0.35);
314 pieSeries->setPieSize(0.35);
307 pieSeries->setHorizontalPosition(0.8);
315 pieSeries->setHorizontalPosition(0.8);
308 pieSeries->setVerticalPosition(0.3);
316 pieSeries->setVerticalPosition(0.3);
309 m_chart->addSeries(pieSeries);
317 m_chart->addSeries(pieSeries);
310 seriesColorHex = "#" + QString::number(pieSeries->slices().at(pieSeries->slices().count()/2)->brush().color().rgb(), 16).right(6).toUpper();
318 seriesColorHex = "#" + QString::number(pieSeries->slices().at(pieSeries->slices().count()/2)->brush().color().rgb(), 16).right(6).toUpper();
311 m_model->addMapping(seriesColorHex, QRect(1, 2, 1, 1000));
319 m_model->addMapping(seriesColorHex, QRect(1, 2, 1, 1000));
312
320
313 // pie 3
321 // pie 3
314 pieSeries = new QPieSeries;
322 pieSeries = new QPieSeries;
315 pieSeries->setModel(m_model);
323 pieSeries->setModel(m_model);
316 pieSeries->setModelMapping(2,2, Qt::Vertical);
324 pieSeries->setModelMapping(2,2, Qt::Vertical);
317 pieSeries->setLabelsVisible(true);
325 pieSeries->setLabelsVisible(true);
318 pieSeries->setPieSize(0.35);
326 pieSeries->setPieSize(0.35);
319 pieSeries->setHorizontalPosition(0.5);
327 pieSeries->setHorizontalPosition(0.5);
320 pieSeries->setVerticalPosition(0.75);
328 pieSeries->setVerticalPosition(0.75);
321 m_chart->addSeries(pieSeries);
329 m_chart->addSeries(pieSeries);
322 seriesColorHex = "#" + QString::number(pieSeries->slices().at(pieSeries->slices().count()/2)->brush().color().rgb(), 16).right(6).toUpper();
330 seriesColorHex = "#" + QString::number(pieSeries->slices().at(pieSeries->slices().count()/2)->brush().color().rgb(), 16).right(6).toUpper();
323 m_model->addMapping(seriesColorHex, QRect(2, 0, 1, 1000));
331 m_model->addMapping(seriesColorHex, QRect(2, 0, 1, 1000));
324
332
325 // // special pie
333 // // special pie
326 // specialPie = new QPieSeries;
334 // specialPie = new QPieSeries;
327 // specialPie->append(17, "1");
335 // specialPie->append(17, "1");
328 // specialPie->append(45, "2");
336 // specialPie->append(45, "2");
329 // specialPie->append(77, "3");
337 // specialPie->append(77, "3");
330 // specialPie->append(37, "4");
338 // specialPie->append(37, "4");
331 // specialPie->append(27, "5");
339 // specialPie->append(27, "5");
332 // specialPie->append(47, "6");
340 // specialPie->append(47, "6");
333 // specialPie->setPieSize(0.35);
341 // specialPie->setPieSize(0.35);
334 // specialPie->setHorizontalPosition(0.8);
342 // specialPie->setHorizontalPosition(0.8);
335 // specialPie->setVerticalPosition(0.75);
343 // specialPie->setVerticalPosition(0.75);
336 // specialPie->setLabelsVisible(true);
344 // specialPie->setLabelsVisible(true);
337 // m_chart->addSeries(specialPie);
345 // m_chart->addSeries(specialPie);
338 }
346 }
339 else if (m_areaRadioButton->isChecked())
347 else if (m_areaRadioButton->isChecked())
340 {
348 {
349 m_chart->setAnimationOptions(QChart::NoAnimation);
350
341 QLineSeries* upperLineSeries = new QLineSeries;
351 QLineSeries* upperLineSeries = new QLineSeries;
342 upperLineSeries->setModel(m_model);
352 upperLineSeries->setModel(m_model);
343 upperLineSeries->setModelMapping(0, 1, Qt::Vertical);
353 upperLineSeries->setModelMapping(0, 1, Qt::Vertical);
344 // upperLineSeries->setModelMappingRange(1, 5);
354 // upperLineSeries->setModelMappingRange(1, 5);
345 QLineSeries* lowerLineSeries = new QLineSeries;
355 QLineSeries* lowerLineSeries = new QLineSeries;
346 lowerLineSeries->setModel(m_model);
356 lowerLineSeries->setModel(m_model);
347 lowerLineSeries->setModelMapping(2, 3, Qt::Vertical);
357 lowerLineSeries->setModelMapping(2, 3, Qt::Vertical);
348 QAreaSeries* areaSeries = new QAreaSeries(upperLineSeries, lowerLineSeries);
358 QAreaSeries* areaSeries = new QAreaSeries(upperLineSeries, lowerLineSeries);
349 m_chart->addSeries(areaSeries);
359 m_chart->addSeries(areaSeries);
350 seriesColorHex = "#" + QString::number(areaSeries->brush().color().rgb(), 16).right(6).toUpper();
360 seriesColorHex = "#" + QString::number(areaSeries->brush().color().rgb(), 16).right(6).toUpper();
351 m_model->addMapping(seriesColorHex, QRect(0, 1, 2, 5));
361 m_model->addMapping(seriesColorHex, QRect(0, 1, 2, 5));
352 m_model->addMapping(seriesColorHex, QRect(2, 0, 2, 1000));
362 m_model->addMapping(seriesColorHex, QRect(2, 0, 2, 1000));
353 }
363 }
354 else if (m_barRadioButton->isChecked())
364 else if (m_barRadioButton->isChecked())
355 {
365 {
366 m_chart->setAnimationOptions(QChart::SeriesAnimations);
367
356 QBarSeries* barSeries = new QBarSeries(QStringList());
368 QBarSeries* barSeries = new QBarSeries(QStringList());
357 barSeries->setModel(m_model);
369 barSeries->setModel(m_model);
358 // barSeries->setModelMappingRange(2, 5);
370 // barSeries->setModelMappingRange(2, 5);
359 barSeries->setModelMapping(5, 2, 4, Qt::Vertical);
371 barSeries->setModelMapping(5, 2, 4, Qt::Vertical);
360 m_chart->addSeries(barSeries);
372 m_chart->addSeries(barSeries);
361 QList<QBarSet*> barsets = barSeries->barSets();
373 QList<QBarSet*> barsets = barSeries->barSets();
362 for (int i = 0; i < barsets.count(); i++) {
374 for (int i = 0; i < barsets.count(); i++) {
363 seriesColorHex = "#" + QString::number(barsets.at(i)->brush().color().rgb(), 16).right(6).toUpper();
375 seriesColorHex = "#" + QString::number(barsets.at(i)->brush().color().rgb(), 16).right(6).toUpper();
364 m_model->addMapping(seriesColorHex, QRect(2 + i, 0, 1, 1000));
376 m_model->addMapping(seriesColorHex, QRect(2 + i, 0, 1, 1000));
365 }
377 }
366 }
378 }
367
379
368
380
369 if (!m_barRadioButton->isChecked()) {
381 if (!m_barRadioButton->isChecked()) {
370 m_chart->axisX()->setRange(0, 500);
382 m_chart->axisX()->setRange(0, 500);
371 m_chart->axisY()->setRange(0, 220);
383 m_chart->axisY()->setRange(0, 220);
372 }
384 }
373 m_chart->legend()->setVisible(true);
385 m_chart->legend()->setVisible(true);
374
386
375 // repaint table view colors
387 // repaint table view colors
376 m_tableView->repaint();
388 m_tableView->repaint();
377 m_tableView->setFocus();
389 m_tableView->setFocus();
378 }
390 }
379 }
391 }
380
392
381 void TableWidget::testPie()
393 void TableWidget::testPie()
382 {
394 {
383 m_tableView->setColumnWidth(10, 250);
395 m_tableView->setColumnWidth(10, 250);
384 // if (specialPie) {
396 // if (specialPie) {
385 // specialPie->remove(specialPie->slices().at(2));
397 // specialPie->remove(specialPie->slices().at(2));
386 // // specialPie->insert(4, new QPieSlice(45, "Hello"));//specialPie->slices.at(2));
398 // // specialPie->insert(4, new QPieSlice(45, "Hello"));//specialPie->slices.at(2));
387 // specialPie->append(4, "heloo");
399 // specialPie->append(4, "heloo");
388 // }
400 // }
389 }
401 }
390
402
391 TableWidget::~TableWidget()
403 TableWidget::~TableWidget()
392 {
404 {
393
405
394 }
406 }
General Comments 0
You need to be logged in to leave comments. Login now