Qwt中對於某個軸的縮放操作

lovebird_27發表於2016-01-16

     Qt中使用Qwt進行canvas的縮放操作是針對整個圖形以及座標軸的縮放操作,如果要進行只對某個軸和圖形的縮放思路是關聯

zoomer的訊號zoomed(QRectF),然後執行槽函數(記錄當前座標軸起點與終點的資訊,然後將這個資訊設定座標軸setAxisScale())。

     程式碼如下:

connect( zoomer, SIGNAL( zoomed( QRectF ) ),
             this, SLOT( select_axis_zoomer( QRectF ) ) );

void datadisplay::select_axis_zoomer( QRectF )
{
    const QwtScaleDiv xs = axisScaleDiv( QwtPlot::xBottom );
    const QwtScaleDiv ys = axisScaleDiv( QwtPlot::yLeft );
    setAxisScale( QwtPlot::xBottom,	 //固定x軸
                  xs.lowerBound(),
                  xs.upperBound() );
    setAxisScale( QwtPlot::yLeft,	//固定y軸
                  ys.lowerBound(),
                  ys.upperBound() );
    
    this->replot();
}

     上述式子中lowerBound與upperBound分別對應某個軸的最小刻度與最大刻度值

相關文章