##// END OF EJS Templates
combined clicked and rightclicked events of legend to one event with parameter
combined clicked and rightclicked events of legend to one event with parameter

File last commit:

r486:7ab45bf9f776
r567:17f0257049a1
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()
{
}