我在绘图中有一条经典曲线,我想使用滚轮鼠标事件在光标位置设置缩放。 为此,我想:
设置重新缩放:QwtPlotMagnifier::rescale(factor); (这已经完成并且有效)
将绘图的中心设置为光标的位置(我在这部分、文档、stackoverflow 或其他网站上找到了任何内容)
我不知道是否有其他方法可以继续,您是否有任何建议..
谢谢!
最佳答案
所以我找到了一个完美的解决方案,我最终设置了一个像谷歌地图缩放一样的缩放。
解决方案是:
- 在绘图放大镜中捕捉 widget wheel 事件
- 在绘图放大镜中创建私有(private)方法
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%(zoom)),80%(zoom))。
关于c++ - 重新缩放或缩放光标后的 qwt plot 移动曲线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40046781/