c++ - 重新缩放或缩放光标后的 qwt plot 移动曲线

标签 c++ qt qwt

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

  • 设置重新缩放: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/

相关文章:

c++ - 如何在 C++ 中构建执行异步后台任务的对象

c++ - 为什么 `explicit` 关键字不能阻止 `char` 被转换为 `int` ?

qt - 使用 QSyntaxHighlighter 突出显示奇数行

使用 MXE 和 NetworkAuth 的 Qt5 交叉编译

c++ - 未解析的外部符号:QMetaObject const QwtPlotMagnifier::staticMetaObject

c++ - 多个用户在 Web 浏览器界面上访问的 Qt 应用程序

qt - 当鼠标指针位于 QwtPlot 上时,如何更改所使用的光标?

c++ - "const char(&a)[N]"是什么意思?

c++ - 使用 rundll32.exe 调试 native dll,无法加载符号

qt - QML SwipeView 具有不透明的背景。我怎样才能使它透明?