QT 禁用QSlider点击跳转

在Qt中Qslider的单击会移动一个step,这里需要禁用跳转,保留拖动,重写QSlider mousePressEvent函数。

class MySlider : public QSlider {
public:
  explicit MySlider(QWidget *parent = 0);

protected:
  void mousePressEvent(QMouseEvent *event) {
    //获取点击触发前的值
    const int value = this->value();
    //调用父类的鼠标点击处理事件
    QSlider::mousePressEvent(event);
    setValue(value);
    //向父窗口发送自定义事件event type,这样就可以在父窗口中捕获这个事件进行处理
    QEvent evEvent(static_cast<QEvent::Type>(QEvent::User + 1));
    QCoreApplication::sendEvent(parentWidget(), &evEvent);
  }
};



猜你喜欢

转载自blog.csdn.net/u011181882/article/details/80095439
QT
今日推荐