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