滑块在整个应用程序中对鼠标滚轮作出反应

时间:2015-09-04 08:31:02

标签: qt qslider

默认情况下,只有光标在鼠标滚轮上时,QSlider才会对鼠标滚轮作出反应。我想用鼠标滚轮控制滑块而不管光标在哪里(当然只有当我的应用程序有焦点时)。

实现这一目标的最佳方式是什么?

我刚刚了解到鼠标不会产生信号。所以看起来我需要在主窗口中覆盖wheelEvent并在其中使用raise或lower方法。但我猜这可能会导致鼠标悬停时滑块值的双倍增加(或减少)。

再一次:实现我所描述的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

您可以覆盖MainWindow中的wheelEvent()并将其重定向到滑块控件,这确实是一个选项。

另一种选择是在qApp实例上安装event filter。然后,这个偶数过滤器可以检查事件类型是否为QEvent :: Wheel,当接收器滑块时,再次将其重定向到滑块。应该也一样。