##// END OF EJS Templates
First version of legend. Simple markers and serie names. Using drilldown as example for now.
First version of legend. Simple markers and serie names. Using drilldown as example for now.

File last commit:

r486:7ab45bf9f776
r529:73dc1554f5c7
Show More
splinewidget.cpp
102 lines | 2.7 KiB | text/x-c | CppLexer
#include "splinewidget.h"
#include "qchartview.h"
#include "qlineseries.h"
#include <QGridLayout>
#include <QPushButton>
#include "qchartaxis.h"
#include <qmath.h>
QTCOMMERCIALCHART_USE_NAMESPACE
SplineWidget::SplineWidget(QWidget *parent)
: QWidget(parent)
{
// qsrand(time(NULL));
//! [1]
//create QSplineSeries
series = new QSplineSeries;
//! [1]
//! [2]
// customize the series presentation settings
QPen seriesPen(Qt::blue);
seriesPen.setWidth(3);
series->setPen(seriesPen);
//! [2]
//! [add points to series]
//add data points to the series
series->add(QPointF(150, 100));
series->add(QPointF(200, 130));
series->add(QPointF(250, 120));
series->add(QPointF(300, 140));
series->add(QPointF(350, 160));
//! [add points to series]
// series->add(QPointF(400, 120));
// series->add(QPointF(450, 150));
// series->add(QPointF(500, 145));
// series->add(QPointF(550, 170));
// series->add(QPointF(600, 190));
// series->add(QPointF(650, 210));
// series->add(QPointF(700, 190));
// series->add(QPointF(750, 180));
// series->add(QPointF(800, 170));
//! [3]
// create chart view
QChartView* chart = new QChartView;
chart->addSeries(series);
chart->setChartTitle("Spline chart example");
chart->axisX()->setMax(1500);
chart->axisY()->setMax(500);
chart->setMinimumSize(800,600);
//! [3]
//! [4]
//add new data point button
QPushButton* addButton = new QPushButton("Add new point");
connect(addButton, SIGNAL(clicked()), this, SLOT(addNewPoint()));
// remove the last data point in the series
QPushButton* removeButton = new QPushButton("Remove point");
connect(removeButton, SIGNAL(clicked()), this, SLOT(removePoint()));
//! [4]
//! [5]
//butttons layout
QVBoxLayout* buttonsLayout = new QVBoxLayout;
buttonsLayout->addWidget(addButton);
buttonsLayout->addWidget(removeButton);
buttonsLayout->addStretch();
QGridLayout* mainLayout = new QGridLayout;
mainLayout->addWidget(chart, 1, 0);
mainLayout->addLayout(buttonsLayout, 1, 1);
setLayout(mainLayout);
//! [5]
}
//! [add point]
void SplineWidget::addNewPoint()
{
if (series->count() > 0)
series->add(QPointF(series->x(series->count() - 1) + 40 + qrand()%40, qAbs(series->y(series->count() - 1) - 50 + qrand()%100)));
else
series->add(QPointF(50, 50 + qrand()%50));
}
//! [add point]
//! [remove point]
void SplineWidget::removePoint()
{
if (series->count() > 0)
series->remove(QPointF(series->x(series->count() - 1), series->y(series->count() - 1)));
}
//! [remove point]
SplineWidget::~SplineWidget()
{
}