Qt Charts——QChartsView


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,而是采用組合的設計模式,鼠標移動事件無法生效。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM