-1

默认情况下,QSlider 仅在光标位于鼠标滚轮上时才对鼠标滚轮做出反应。无论光标在哪里,我都想通过鼠标滚轮控制滑块(当然只有当我的应用程序有焦点时)。

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

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

所以再一次:实现我所描述的最好方法是什么?

4

1 回答 1

2

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

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

于 2015-09-04T10:35:08.643 回答