16,216
社区成员
发帖
与我相关
我的任务
分享
#include "millionpoints.h"
#include <QtCore/QtMath>
using namespace QtCharts;
MillionPoints::MillionPoints(QWidget *parent)
: QGraphicsView(parent)
{
series1 = new QScatterSeries();
series2 = new QScatterSeries();
series1->setName("scatter1");
series2->setName("scatter2");
series1->setMarkerShape(QScatterSeries::MarkerShapeCircle);
series1->setMarkerSize(15.0);
for(double i=0; i<100; i+=5)
{
series1->append(i,sin(i));
}
chart = new QChart();
chart->addSeries(series1);
chart->addSeries(series2);
chart->createDefaultAxes();
chart->axisX()->setRange(0,100);
chart->axisY()->setRange(-10,10);
scene = new QGraphicsScene();
scene->addItem(chart);
scene->setSceneRect(0, 0, 800, 500);
chart->setGeometry(0,0,800,500);
this->setWindowTitle("MillionPoints");
this->resize(900,600);
this->setScene(scene);
connect(series1,SIGNAL(clicked(QPointF)),this,SLOT(series1HandleClickedPoint(QPointF)));
connect(series2,SIGNAL(clicked(QPointF)),this,SLOT(series2HandleClickedPoint(QPointF)));
}
MillionPoints::~MillionPoints()
{
}
void MillionPoints::series1HandleClickedPoint(const QPointF &point)
{
QPointF clickedPoint = point;
if(series2->count()==0){
series1->remove(clickedPoint);
series2->append(clickedPoint);
qDebug()<<"--first click";
}else{
series1->append(series2->points());
series2->clear();
series2->append(clickedPoint);
series1->remove(clickedPoint);
qDebug()<<"--click another point";
}
}
void MillionPoints::series2HandleClickedPoint(const QPointF &point)
{
QPointF clickedPoint = point;
series1->append(clickedPoint);
series2->remove(clickedPoint);
qDebug()<<"--click last point";
}
void View::series2HandleClickedPoint(const QPointF &point){
s->setFocusItem(s->c);
series1->append(point);
series2->remove(point);
qDebug()<<"取消选中";
}
这样写也还是不行,异常 程序中断了