QSint Library  0.2.2
spinslider.h
1 #ifndef SPINSLIDER_H
2 #define SPINSLIDER_H
3 
4 #include <QSlider>
5 #include <QLabel>
6 #include <QBoxLayout>
7 #include <QSpinBox>
8 #include <QToolButton>
9 
10 
11 namespace QSint
12 {
13 
14 
21 class SpinSlider : public QWidget
22 {
23  Q_OBJECT
24 
25  Q_PROPERTY(int minimum READ minimum WRITE setMinimum)
26  Q_PROPERTY(int maximum READ maximum WRITE setMaximum)
27  Q_PROPERTY(int value READ value WRITE setValue)
28  Q_PROPERTY(int sliderMultiplier READ sliderMultiplier WRITE setSliderMultiplier)
29  Q_PROPERTY(bool showTicks READ ticksEnabled WRITE enableTicks)
30  Q_PROPERTY(QString unitText READ unitText WRITE setUnitText)
31 
32 public:
35  explicit SpinSlider(QWidget *parent = 0);
36 
37  int value() const { return m_editor->value(); }
38  int minimum() const { return m_editor->minimum(); }
39  int maximum() const { return m_editor->maximum(); }
40 
41  void setValue(int val) { m_editor->setValue(val); }
42  void setMinimum(int val);
43  void setMaximum(int val);
44 
45  int sliderMultiplier() const { return m_sliderMultiplier; }
46  void setSliderMultiplier(int val);
47 
48  bool ticksEnabled() const { return m_slider->tickPosition() != QSlider::NoTicks; }
49  void enableTicks(bool on = true);
50 
51  void expandVertically(bool on = true);
52 
53  void setEditorWidth(int width);
54  void setUnitLabelWidth(int width);
55 
56  QString unitText() const { return m_unitLabel->text(); }
57  void setUnitText(const QString& val);
58 
59 Q_SIGNALS:
62  void valueChanged(int index);
63 
64 protected Q_SLOTS:
65  void OnEditorValueChanged(int val);
66  void OnSliderMoved(int val);
67  void OnMinButtonClicked();
68  void OnMaxButtonClicked();
69 
70 protected:
71  void UpdateConstrains();
72 
73  QSpinBox *m_editor;
74  QSlider *m_slider;
75  QToolButton *m_minButton, *m_maxButton;
76  QLabel *m_unitLabel;
77 
78  int m_sliderMultiplier;
79 };
80 
81 
82 } // namespace
83 
84 #endif // SPINSLIDER_H
Spin editor with additional buttons and slider for quick value edition.
Definition: spinslider.h:21
void valueChanged(int index)
SpinSlider(QWidget *parent=0)
Definition: spinslider.cpp:8

© Sintegrial Technologies 2011-2014
http://www.sintegrial.com