slider-ignorewheel.hpp 796 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include <QSlider>
  3. #include <QInputEvent>
  4. #include <QtCore/QObject>
  5. #include <QStyleOptionSlider>
  6. class SliderIgnoreScroll : public QSlider {
  7. Q_OBJECT
  8. public:
  9. SliderIgnoreScroll(QWidget *parent = nullptr);
  10. SliderIgnoreScroll(Qt::Orientation orientation, QWidget *parent = nullptr);
  11. protected:
  12. virtual void wheelEvent(QWheelEvent *event) override;
  13. };
  14. class SliderIgnoreClick : public SliderIgnoreScroll {
  15. public:
  16. inline SliderIgnoreClick(Qt::Orientation orientation, QWidget *parent = nullptr)
  17. : SliderIgnoreScroll(orientation, parent)
  18. {
  19. }
  20. protected:
  21. virtual void mousePressEvent(QMouseEvent *event) override;
  22. virtual void mouseReleaseEvent(QMouseEvent *event) override;
  23. virtual void mouseMoveEvent(QMouseEvent *event) override;
  24. private:
  25. bool dragging = false;
  26. };