【发布时间】:2019-04-11 19:03:08
【问题描述】:
如何在键盘箭头和 mouseWheel 滚动上禁用 QSlider 发出的 SIGNAL valueChanged。通过设置
ui->horizontalSlider->setFocusPolicy(Qt::NoFocus);
键盘的方向键没有发出信号。
我怎样才能为鼠标滚轮滚动做同样的事情? 我不想从 QSlider 重新实现我的自定义 Slider 类。 我要求任何解决方法或 api,以便我可以禁用响应 qslider 的键盘和鼠标滚轮滚动。
主要目的是避免在每个 valueChange 上发送信号。所以我已经实现了以下,它工作正常
on_horizontalSlider_sliderReleased()
on_horizontalSlider_sliderPressed()
基于在这 2 个插槽中更新的布尔标志,
on_horizontalSlider_valueChanged(int)
正在执行所需的操作...例如在释放滑块后,正在向所需的应用程序中添加值。
请求提供解决方法和示例。
【问题讨论】:
-
那是不可能的。如果值发生变化,则发出该信号。这就是它的定义。您已经自己提出了解决方案:使用按下/释放信号对值做出反应,而不是使用 valueChanged 信号。
-
是的..没错。
标签: c++ qt keyboard mousewheel qslider