1 /* QSlider按值滑动,设置范围较小时,导致触摸看上去和显示位置不符合. 按照像素滑动纵行滑窗口接近值绘制.*/ 2 #ifndef SLIDERWIDGET_H 3 #define SLIDERWIDGET_H 4 5 #include <QWidget> 6 7 class SliderWidgetPrivate; 8 class SliderWidget : public QWidget 9 { 10 Q_OBJECT 11 public: 12 explicit SliderWidget(QWidget *parent = nullptr); 13 ~ SliderWidget(); 14 15 void setRange(int min, int max); 16 int value(); 17 void setValue(int value); 18 19 Q_SIGNALS: 20 void valueChanged(int v); 21 22 protected: 23 void mousePressEvent(QMouseEvent *e); 24 void mouseMoveEvent(QMouseEvent *e); 25 void paintEvent(QPaintEvent *e); 26 void resizeEvent(QResizeEvent *e); 27 28 QSize sizeHint()const; 29 30 private: 31 SliderWidgetPrivate *m_d; 32 }; 33 34 #endif // SLIDERWIDGET_H 35