qtmaterialslider.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef QTMATERIALSLIDER_H
  2. #define QTMATERIALSLIDER_H
  3. #include <QtWidgets/QAbstractSlider>
  4. #include <QScopedPointer>
  5. #define QT_MATERIAL_SLIDER_MARGIN 30
  6. class QtMaterialSliderPrivate;
  7. class QtMaterialSlider : public QAbstractSlider
  8. {
  9. Q_OBJECT
  10. Q_PROPERTY(QColor thumbColor WRITE setThumbColor READ thumbColor)
  11. Q_PROPERTY(QColor trackColor WRITE setTrackColor READ trackColor)
  12. Q_PROPERTY(QColor disabledColor WRITE setDisabledColor READ disabledColor)
  13. public:
  14. explicit QtMaterialSlider(QWidget *parent = 0);
  15. ~QtMaterialSlider();
  16. void setUseThemeColors(bool value);
  17. bool useThemeColors() const;
  18. void setThumbColor(const QColor &color);
  19. QColor thumbColor() const;
  20. void setTrackColor(const QColor &color);
  21. QColor trackColor() const;
  22. void setDisabledColor(const QColor &color);
  23. QColor disabledColor() const;
  24. void setPageStepMode(bool pageStep);
  25. bool pageStepMode() const;
  26. QSize minimumSizeHint() const Q_DECL_OVERRIDE;
  27. void setInvertedAppearance(bool value);
  28. protected:
  29. void sliderChange(SliderChange change) Q_DECL_OVERRIDE;
  30. void mouseMoveEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
  31. void mousePressEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
  32. void mouseReleaseEvent(QMouseEvent *event) Q_DECL_OVERRIDE;
  33. void leaveEvent(QEvent *event) Q_DECL_OVERRIDE;
  34. void updateThumbOffset();
  35. const QScopedPointer<QtMaterialSliderPrivate> d_ptr;
  36. private:
  37. Q_DISABLE_COPY(QtMaterialSlider)
  38. Q_DECLARE_PRIVATE(QtMaterialSlider)
  39. };
  40. #endif // QTMATERIALSLIDER_H