重新缩放或缩放光标后qwt plot移动曲线

时间:2016-10-14 15:25:22

标签: c++ qt qwt

我在绘图中有一条经典曲线,我想用滚轮鼠标事件在光标位置设置缩放。 为此,我想:

  • 设置rescale:QwtPlotMagnifier :: rescale(factor); (这已经完成并且有效)

  • 将我的绘图中心设置到我的光标位置(我在这部分,文档,stackoverflow或其他网站上找到任何内容)

我不知道是否有其他方法可以继续,如果您有任何建议......

谢谢!

1 个答案:

答案 0 :(得分:0)

所以我找到了一个完美的解决方案,我最终设置了像谷歌地图缩放一样的缩放。

解决方案是:

  • 在情节放大镜中捕捉小部件滚轮事件
  • 在绘图放大器rescale_on_cursor(double factor, int x_cursor, int y_cursor, QSize parent_size)
  • 中创建私有方法

在小部件滚轮事件中,您将调用您的方法。因子将是0,9或1,1(取消缩放或缩放),(x,y)光标位置和QSize父窗口小部件的大小。

主要思想是派生qwt_plotMagnifier :: rescale()并修改定义新比例的步骤,您将设置比例的百分比,该百分比等于光标位置的百分比。

如果x_cursor等于父级大小的20%,则将设置AxisScale(20%(缩放),80%(缩放))。