chartview.cpp
70 lines
| 1.6 KiB
| text/x-c
|
CppLexer
Michal Klocek
|
r246 | #include "chartview.h" | ||
Michal Klocek
|
r349 | #include <qlineseries.h> | ||
Michal Klocek
|
r476 | #include <qscatterseries.h> | ||
#include <qsplineseries.h> | ||||
Michal Klocek
|
r246 | #include <QTime> | ||
ChartView::ChartView(QWidget* parent):QChartView(parent), | ||||
m_index(0) | ||||
{ | ||||
Michal Klocek
|
r476 | setChartTitle("Three random line charts"); | ||
Michal Klocek
|
r246 | QObject::connect(&m_timer,SIGNAL(timeout()),this,SLOT(handleTimeout())); | ||
m_timer.setInterval(3000); | ||||
QTime now = QTime::currentTime(); | ||||
qsrand((uint)now.msec()); | ||||
Michal Klocek
|
r444 | QLineSeries* series0 = new QLineSeries(this); | ||
Michal Klocek
|
r246 | QPen blue(Qt::blue); | ||
blue.setWidth(3); | ||||
series0->setPen(blue); | ||||
Michal Klocek
|
r476 | QScatterSeries* series1 = new QScatterSeries(this); | ||
Michal Klocek
|
r246 | QPen red(Qt::red); | ||
red.setWidth(3); | ||||
series1->setPen(red); | ||||
Michal Klocek
|
r476 | series1->setBrush(Qt::white); | ||
QSplineSeries* series2 = new QSplineSeries(this); | ||||
Michal Klocek
|
r246 | QPen green(Qt::green); | ||
green.setWidth(3); | ||||
series2->setPen(green); | ||||
int numPoints = 10; | ||||
for (int x = 0; x <= numPoints; ++x) { | ||||
Michal Klocek
|
r476 | qreal y = qrand() % 100; | ||
series0->add(x,y); | ||||
series1->add(x,y); | ||||
series2->add(x,y); | ||||
Michal Klocek
|
r246 | } | ||
m_series<<series0; | ||||
Michal Klocek
|
r476 | m_titles<<chartTitle()+": LineChart"; | ||
Michal Klocek
|
r246 | m_series<<series1; | ||
Michal Klocek
|
r476 | m_titles<<chartTitle()+": ScatterChart"; | ||
Michal Klocek
|
r246 | m_series<<series2; | ||
Michal Klocek
|
r476 | m_titles<<chartTitle()+": SplineChart"; | ||
addSeries(series0); | ||||
setChartTitle(m_titles.at(0)); | ||||
Michal Klocek
|
r246 | |||
m_timer.start(); | ||||
} | ||||
ChartView::~ChartView() | ||||
{ | ||||
Michal Klocek
|
r257 | if(m_series.size()==0) return; | ||
removeSeries(m_series.at(m_index)); | ||||
qDeleteAll(m_series); | ||||
Michal Klocek
|
r246 | } | ||
void ChartView::handleTimeout() | ||||
{ | ||||
if(m_series.size()==0) return; | ||||
removeSeries(m_series.at(m_index)); | ||||
m_index++; | ||||
m_index=m_index%m_series.size(); | ||||
addSeries(m_series.at(m_index)); | ||||
Michal Klocek
|
r476 | setChartTitle(m_titles.at(m_index)); | ||
Michal Klocek
|
r246 | } | ||