RangeSlider.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #pragma once
  2. #include <QColor>
  3. #include <QWidget>
  4. #include <QString>
  5. #include <QLabel>
  6. class RangeSlider : public QWidget
  7. {
  8. Q_OBJECT
  9. public:
  10. enum DisplayMode{ Range, Iteration};
  11. RangeSlider(QWidget *parent);
  12. ~RangeSlider();
  13. void setMinSliderValue(int value);
  14. void setMaxSliderValue(int value);
  15. void setItertionSliderValue(int value);
  16. void setRange(int min, int max);
  17. int getMinRange() const;
  18. int getMaxRange() const;
  19. void setMinRange(int value);
  20. void setMaxRange(int value);
  21. void setMode(DisplayMode mode);
  22. void setTitle(QString string);
  23. //Visual Settings:
  24. void setRangeColor(QColor color);
  25. void setSliderRangeColor(QColor color);
  26. private:
  27. int minRange = 0, maxRange = 100, minSliderValue = 0, maxSliderValue = 100, itertionSliderValue = 50;
  28. QColor rangeColor, sliderRangeColor;
  29. DisplayMode mode = DisplayMode::Range;
  30. void paintEvent(QPaintEvent* event) override;
  31. void mouseMoveEvent(QMouseEvent* event) override;
  32. void mousePressEvent(QMouseEvent* event) override;
  33. void updateSliderPosition(QMouseEvent* event);
  34. QLabel* titleLabel;
  35. int maxPos();
  36. int minPos();
  37. signals:
  38. void maxChanged(int max);
  39. void minChanged(int min);
  40. };