1、新建一個繼承自QChartView的類,在其構造函數中加入如下代碼
1 QSplineSeries *series1 = new QSplineSeries();//曲線 2 *series1 << QPointF(1, 3) << QPointF(3, 4) << QPointF(7, 3)<< QPointF(12, 3)<< QPointF(16, 4) ; 3 4 QChart *chart = new QChart(); 5 chart->addSeries(series); 6 chart->setTitle("QChartView"); 7 chart->createDefaultAxes(); 8 chart->axisX()->setRange(0, 20); 9 chart->axisY()->setRange(0, 10); 10 11 setRenderHint(QPainter::Antialiasing); 12 setChart(chart); //將曲線圖加到QChartView中
QChartView是一個可以顯示圖表的獨立小控件。
2、繼承自QChartView的類可以重寫 鼠標移動和鼠標點擊事件
1 void ChartView::mouseMoveEvent(QMouseEvent *event) 2 {//在鼠標所在位置划線 3 chart->remove(series2); 4 chart->remove(series3); 5 m_x=chart->mapToValue(event->pos.x()).x(); 6 m_y=chart->mapToValue(event->pos.y()).y(); 7 8 series2 = new QSplineSeries(); 9 *series2<<QPoint(m_x, 0)<<QPoint(m_x, 20); 10 chart->addSeries(series2); 11 series3 = new QSplineSeries(); 12 *series3<<QPoint(0, m_y)<<QPoint(10, m_y); 13 chart->addSeries(series3); 14 }
如果不是繼承自QChartView,而是采用組合的設計模式,鼠標移動事件無法生效。
