2016-10-14 8 views
0

プロットに古典的な曲線があり、ホイールのマウスイベントでカーソル位置にズームを設定したいとします。そのために 私がしたい:再スケールを設定しqwtプロットのカーブを移動または拡大した後にプロットを移動する

  • :QwtPlotMagnifier ::リスケール(因子);

  • は私のカーソルの位置に私のプロットの中心を設定します(これが行われ、動作します)

Iを(私は、ウェブサイトのドキュメント、stackoverflowの上または他人に、この部分に何かを見つけます。)何かアドバイスがある場合は、他の方法があるかどうかわかりません。

ありがとう!

答えて

0

私は完璧に動作する解決策を見つけました。最終的には、Googleマップのズームのようにズームを設定しました。

解決策は以下のとおりです。

  • キャッチプロット拡大鏡
  • でウィジェットホイールイベントは、プロット拡大鏡であなたが呼び出すウィジェットホイールイベントでrescale_on_cursor(double factor, int x_cursor, int y_cursor, QSize parent_size)

のプライベートメソッドを作成します方法。係数は0,9,1,1(unzoomまたはzoom)、(x、y)カーソル位置、およびQSizeは親ウィジェットのサイズになります。

主な考え方は、qwt_plotMagnifier :: rescale()を派生させ、新しいスケールを定義するステップを変更することです。スケールのパーセントは、カーソル位置のパーセントに等しく設定されます。

x_cursorが親のサイズの20%に等しい場合は、AxisScale(20%(ズーム)、80%(ズーム))を設定します。

関連する問題