CTK 0.1.0
The Common Toolkit is a community effort to provide support code for medical image analysis, surgical navigation, and related projects.
Loading...
Searching...
No Matches
ctkRangeWidget.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Library: CTK
4
5 Copyright (c) Kitware Inc.
6
7 Licensed under the Apache License, Version 2.0 (the "License");
8 you may not use this file except in compliance with the License.
9 You may obtain a copy of the License at
10
11 http://www.apache.org/licenses/LICENSE-2.0.txt
12
13 Unless required by applicable law or agreed to in writing, software
14 distributed under the License is distributed on an "AS IS" BASIS,
15 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 See the License for the specific language governing permissions and
17 limitations under the License.
18
19=========================================================================*/
20
21#ifndef __ctkRangeWidget_h
22#define __ctkRangeWidget_h
23
24// Qt includes
25#include <QSlider>
26
27// CTK includes
28#include <ctkPimpl.h>
29
30#include "ctkWidgetsExport.h"
31
34class ctkRangeWidgetPrivate;
35class ctkValueProxy;
36
42class CTK_WIDGETS_EXPORT ctkRangeWidget : public QWidget
43{
44 Q_OBJECT
45 Q_PROPERTY(int decimals READ decimals WRITE setDecimals)
46 Q_PROPERTY(double singleStep READ singleStep WRITE setSingleStep)
47 Q_PROPERTY(double minimum READ minimum WRITE setMinimum)
48 Q_PROPERTY(double maximum READ maximum WRITE setMaximum)
49 Q_PROPERTY(double minimumValue READ minimumValue WRITE setMinimumValue)
50 Q_PROPERTY(double maximumValue READ maximumValue WRITE setMaximumValue)
51 Q_PROPERTY(QString prefix READ prefix WRITE setPrefix)
52 Q_PROPERTY(QString suffix READ suffix WRITE setSuffix)
53 Q_PROPERTY(double tickInterval READ tickInterval WRITE setTickInterval)
54 Q_PROPERTY(bool autoSpinBoxWidth READ isAutoSpinBoxWidth WRITE setAutoSpinBoxWidth)
55 Q_PROPERTY(Qt::Alignment spinBoxTextAlignment READ spinBoxTextAlignment WRITE setSpinBoxTextAlignment)
56 Q_PROPERTY(Qt::Alignment spinBoxAlignment READ spinBoxAlignment WRITE setSpinBoxAlignment)
57 Q_PROPERTY(bool tracking READ hasTracking WRITE setTracking)
58 Q_PROPERTY(bool symmetricMoves READ symmetricMoves WRITE setSymmetricMoves)
59 Q_PROPERTY(double customSpinBoxesLimitsMin READ customSpinBoxesLimitsMin)
60 Q_PROPERTY(double customSpinBoxesLimitsMax READ customSpinBoxesLimitsMax)
61
62public:
64 typedef QWidget Superclass;
65
69 explicit ctkRangeWidget(QWidget* parent = 0);
70
72 virtual ~ctkRangeWidget();
73
80 virtual double minimum()const;
81 virtual void setMinimum(double minimum);
82
89 virtual double maximum()const;
90 virtual void setMaximum(double maximum);
93 Q_INVOKABLE virtual void setRange(double min, double max);
94 virtual void range(double minimumAndMaximum[2])const;
95
100 virtual double minimumValue()const;
101
106 virtual double maximumValue()const;
107
111 virtual void values(double &minValue, double &maxValue)const;
112
118 virtual double singleStep()const;
119 virtual void setSingleStep(double step);
120
123 virtual int decimals()const;
124
129 virtual QString prefix()const;
130 virtual void setPrefix(const QString& prefix);
131
136 virtual QString suffix()const;
137 virtual void setSuffix(const QString& suffix);
138
144 virtual double tickInterval()const;
145 virtual void setTickInterval(double ti);
146
151 virtual void setSpinBoxAlignment(Qt::Alignment alignment);
152 virtual Qt::Alignment spinBoxAlignment()const;
153
158 virtual void setSpinBoxTextAlignment(Qt::Alignment alignment);
159 virtual Qt::Alignment spinBoxTextAlignment()const;
160
167 virtual void setTracking(bool enable);
168 virtual bool hasTracking()const;
169
174 // ctkRangeWidget siblings.
175 virtual bool isAutoSpinBoxWidth()const;
176 virtual void setAutoSpinBoxWidth(bool autoWidth);
177
181 virtual bool symmetricMoves()const;
182 virtual void setSymmetricMoves(bool symmetry);
183
186 virtual void setCustomSpinBoxesLimits(double min, double max);
187 virtual double customSpinBoxesLimitsMin()const;
188 virtual double customSpinBoxesLimitsMax()const;
189
199
202 virtual void setValueProxy(ctkValueProxy* proxy);
203 virtual ctkValueProxy* valueProxy() const;
204
205public Q_SLOTS:
208 virtual void reset();
209 virtual void setMinimumValue(double value);
210 virtual void setMaximumValue(double value);
213 virtual void setValues(double minValue, double maxValue);
214
217 virtual void setDecimals(int decimals);
218
219Q_SIGNALS:
222 //void sliderMoved(double position);
223 void minimumValueChanged(double value);
224 void minimumValueIsChanging(double value);
225 void maximumValueChanged(double value);
226 void maximumValueIsChanging(double value);
227 void valuesChanged(double minValue, double maxValue);
228 void rangeChanged(double min, double max);
229
230protected Q_SLOTS:
231 virtual void startChanging();
232 virtual void stopChanging();
233 virtual void changeValues(double newMinValue, double newMaxValue);
234 virtual void changeMinimumValue(double value);
235 virtual void changeMaximumValue(double value);
237 virtual void setSliderValues();
238 virtual void setMinimumToMaximumSpinBox(double minimum);
239 virtual void setMaximumToMinimumSpinBox(double maximum);
240 virtual void onSliderRangeChanged(double min, double max);
241
243 virtual void onValueProxyModified();
244
245protected:
246 virtual bool eventFilter(QObject *obj, QEvent *event);
247
249 virtual void setSlider(ctkDoubleRangeSlider* slider);
250
251protected:
252 QScopedPointer<ctkRangeWidgetPrivate> d_ptr;
253
254private:
255 Q_DECLARE_PRIVATE(ctkRangeWidget);
256 Q_DISABLE_COPY(ctkRangeWidget);
257};
258
259#endif
Custom SpinBox The ctkDoubleSpinBox internaly uses a QDoubleSpinBox while it retain controls over it.
virtual void setMinimumToMaximumSpinBox(double minimum)
ctkRangeWidget(QWidget *parent=0)
virtual bool eventFilter(QObject *obj, QEvent *event)
virtual double customSpinBoxesLimitsMax() const
virtual void setSuffix(const QString &suffix)
void rangeChanged(double min, double max)
virtual void changeMaximumValue(double value)
virtual void setSpinBoxAlignment(Qt::Alignment alignment)
virtual void setMaximum(double maximum)
virtual void setSlider(ctkDoubleRangeSlider *slider)
can be used to change the slider by a custom one
virtual void setPrefix(const QString &prefix)
virtual Qt::Alignment spinBoxAlignment() const
virtual Qt::Alignment spinBoxTextAlignment() const
void minimumValueIsChanging(double value)
virtual void setSymmetricMoves(bool symmetry)
QWidget Superclass
Superclass typedef.
virtual ctkValueProxy * valueProxy() const
virtual void onSliderRangeChanged(double min, double max)
void maximumValueChanged(double value)
virtual void setMaximumValue(double value)
virtual ctkDoubleRangeSlider * slider() const
virtual void setMinimumValue(double value)
virtual void setValues(double minValue, double maxValue)
Utility function that set the min and max values at once.
virtual double maximumValue() const
void minimumValueChanged(double value)
virtual double tickInterval() const
virtual void setAutoSpinBoxWidth(bool autoWidth)
virtual void setTickInterval(double ti)
virtual bool symmetricMoves() const
virtual void stopChanging()
virtual bool isAutoSpinBoxWidth() const
virtual void setMinimum(double minimum)
virtual void setValueProxy(ctkValueProxy *proxy)
virtual void changeValues(double newMinValue, double newMaxValue)
virtual void setDecimals(int decimals)
virtual QString prefix() const
virtual ctkDoubleSpinBox * maximumSpinBox() const
virtual void changeMinimumValue(double value)
virtual double minimum() const
virtual void setCustomSpinBoxesLimits(double min, double max)
This property sets custom limits for spin boxes.
virtual ~ctkRangeWidget()
Destructor.
virtual Q_INVOKABLE void setRange(double min, double max)
virtual int decimals() const
This property holds the precision of the spin box, in decimals.
virtual void setSliderValues()
A spinbox value has been modified, update the slider.
void valuesChanged(double minValue, double maxValue)
virtual void setSingleStep(double step)
QScopedPointer< ctkRangeWidgetPrivate > d_ptr
virtual double singleStep() const
virtual double minimumValue() const
virtual void values(double &minValue, double &maxValue) const
virtual bool hasTracking() const
virtual double maximum() const
virtual ctkDoubleSpinBox * minimumSpinBox() const
virtual void setTracking(bool enable)
virtual double customSpinBoxesLimitsMin() const
virtual void reset()
Reset the slider and spinbox to zero (value and position)
virtual QString suffix() const
virtual void setSpinBoxTextAlignment(Qt::Alignment alignment)
virtual void setMaximumToMinimumSpinBox(double maximum)
virtual void range(double minimumAndMaximum[2]) const
virtual void startChanging()
virtual void onValueProxyModified()
virtual void onValueProxyAboutToBeModified()
void maximumValueIsChanging(double value)
Base class for value proxies. Value proxy allows to decouple the displayed value from the values acce...
Definition: ctkValueProxy.h:47