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);
  }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章