QT中图表类QChart之各种缩放/平移
1、使用QChartView來縮放
(1)用鼠標框選一個矩形,把圖放大到這個矩形
QChartView::setRubberBand(QChartView::RectangleRubberBand);//XY方向同時放大到鼠標畫出的矩形大小(也可以設置為只放大X軸或Y軸)
(2)setRubberBand函數同時也能使鼠標右鍵,具備縮小圖的功能。
2、使用Qchart來平移和縮放
QChart::scroll(-10, 5);//整體平移(-10, 5),兩個參數分別為Δx和Δy
QChart::zoomIn(x,y,width,height);//縮放到指定的矩形
QChart::zoom(0.9) ?//整體縮放,參數為放縮系數,<1代表縮小,>1代表放大
QChart::zoomReset() ?//把所有做過的zoomIn、zoomOut、zoom全部撤銷
3、使用QValueAxis或者QDateTimeAxis來平移和縮放
原理就是,通過設置X/Y軸的范圍來實現平移和縮放。
例如,當前顯示X的顯示范圍為[20, 50],如果我們把X軸的顯示范圍擴大到[0, 80],這樣做的效果就是顯示的圖形變小了,也就實現了縮放。
例如,當前顯示X的顯示范圍為[0, 30],如果我們把X軸的顯示范圍擴大到[10, 40],這樣做的效果就是顯示的圖形左移了,也就實現了平移。
示例代碼:
QValueAxis *axisX = dynamic_cast(Chart->axisX(pLineSeries));//
qreal cur_x_min = axisX->min();
qreal cur_x_max = axisX->max();
axisX->setRange(cur_x_min + 20, cur_x_max + 20);//圖形向左平移20(為什么+代表左移?仔細想想就明白了)
放縮與平移的示例代碼同理
總結
以上是生活随笔為你收集整理的QT中图表类QChart之各种缩放/平移的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QT之QHash简介
- 下一篇: 【C++】智能指针详解