【发布时间】:2019-03-04 04:10:36
【问题描述】:
我们使用的是 Qt 5.10/C++,我被要求使用 QSlider 类实现一个功能。
每当用户在滑块手柄上双击鼠标时,我的同事希望我发出一个信号。
如何做到这一点。也许我必须重新实现
bool event(QEvent *e)
,但我不知道如何开始。
【问题讨论】:
-
有一个
QWidget::mouseDoubleClickEvent()。根据文档,QSlider中似乎没有超载。如果从QSlider派生是一个选项,您可以在派生类中重载它。 (否则,您可能会寻找event filters。) -
@Scheff:感谢您的提示。我会试一试。从 QSlider 派生是我的一个选择。
-
不客气。如果您设法制作了一个有效的最小示例,请不要犹豫,写一个自我回答。 ;-)
-
作为覆盖
QWidget::mouseDoubleClickEvent的替代方法,您可以在QSlider上使用install an event filter。 -
在这种情况下,我查看了
QStyle:Styles and Style Aware Widgets。绘制控件的方法有很多,但您也会发现检索子控件矩形的方法。 (抱歉没有更具体 - 我有点着急。)