The Knob Widget. More...
#include <qwt_knob.h>
Classes | |
class | PrivateData |
Public Types | |
enum | KnobStyle { Flat, Raised, Sunken, Styled } |
Style of the knob surface. More... | |
enum | MarkerStyle { NoMarker = -1, Tick, Triangle, Dot, Nub, Notch } |
Marker type. More... | |
Public Member Functions | |
Qt::Alignment | alignment () const |
int | borderWidth () const |
QRect | knobRect () const |
KnobStyle | knobStyle () const |
int | knobWidth () const |
int | markerSize () const |
MarkerStyle | markerStyle () const |
virtual QSize | minimumSizeHint () const QWT_OVERRIDE |
int | numTurns () const |
QwtKnob (QWidget *parent=NULL) | |
Constructor. More... | |
QwtRoundScaleDraw * | scaleDraw () |
const QwtRoundScaleDraw * | scaleDraw () const |
void | setAlignment (Qt::Alignment) |
Set the alignment of the knob. More... | |
void | setBorderWidth (int) |
Set the knob's border width. More... | |
void | setKnobStyle (KnobStyle) |
Set the knob type. More... | |
void | setKnobWidth (int) |
Change the knob's width. More... | |
void | setMarkerSize (int) |
Set the size of the marker. More... | |
void | setMarkerStyle (MarkerStyle) |
Set the marker type of the knob. More... | |
void | setNumTurns (int) |
Set the number of turns. More... | |
void | setScaleDraw (QwtRoundScaleDraw *) |
void | setTotalAngle (double angle) |
Set the total angle by which the knob can be turned. More... | |
virtual QSize | sizeHint () const QWT_OVERRIDE |
double | totalAngle () const |
virtual | ~QwtKnob () |
Destructor. More... | |
Public Member Functions inherited from QwtAbstractSlider | |
bool | invertedControls () const |
bool | isReadOnly () const |
bool | isTracking () const |
bool | isValid () const |
uint | pageSteps () const |
QwtAbstractSlider (QWidget *parent=NULL) | |
Constructor. More... | |
void | setInvertedControls (bool) |
void | setPageSteps (uint) |
Set the number of steps for a page increment. More... | |
void | setReadOnly (bool) |
void | setSingleSteps (uint) |
Set the number of steps for a single increment. More... | |
void | setStepAlignment (bool) |
Enable step alignment. More... | |
void | setTotalSteps (uint) |
Set the number of steps. More... | |
void | setTracking (bool) |
Enables or disables tracking. More... | |
void | setValid (bool) |
void | setWrapping (bool) |
uint | singleSteps () const |
bool | stepAlignment () const |
uint | totalSteps () const |
double | value () const |
bool | wrapping () const |
virtual | ~QwtAbstractSlider () |
Destructor. More... | |
Public Member Functions inherited from QwtAbstractScale | |
double | invTransform (int) const |
bool | isInverted () const |
double | lowerBound () const |
double | maximum () const |
double | minimum () const |
QwtAbstractScale (QWidget *parent=NULL) | |
const QwtScaleDiv & | scaleDiv () const |
QwtScaleEngine * | scaleEngine () |
const QwtScaleEngine * | scaleEngine () const |
const QwtScaleMap & | scaleMap () const |
int | scaleMaxMajor () const |
int | scaleMaxMinor () const |
double | scaleStepSize () const |
void | setLowerBound (double value) |
void | setScale (const QwtInterval &) |
Specify a scale. More... | |
void | setScale (const QwtScaleDiv &) |
Specify a scale. More... | |
void | setScale (double lowerBound, double upperBound) |
Specify a scale. More... | |
void | setScaleEngine (QwtScaleEngine *) |
Set a scale engine. More... | |
void | setScaleMaxMajor (int ticks) |
Set the maximum number of major tick intervals. More... | |
void | setScaleMaxMinor (int ticks) |
Set the maximum number of minor tick intervals. More... | |
void | setScaleStepSize (double stepSize) |
Set the step size used for calculating a scale division. More... | |
void | setUpperBound (double value) |
int | transform (double) const |
double | upperBound () const |
virtual | ~QwtAbstractScale () |
Destructor. More... | |
Protected Member Functions | |
virtual void | changeEvent (QEvent *) QWT_OVERRIDE |
virtual void | drawFocusIndicator (QPainter *) const |
virtual void | drawKnob (QPainter *, const QRectF &) const |
Draw the knob. More... | |
virtual void | drawMarker (QPainter *, const QRectF &, double angle) const |
Draw the marker at the knob's front. More... | |
virtual bool | isScrollPosition (const QPoint &) const QWT_OVERRIDE |
Determine what to do when the user presses a mouse button. More... | |
virtual void | paintEvent (QPaintEvent *) QWT_OVERRIDE |
virtual double | scrolledTo (const QPoint &) const QWT_OVERRIDE |
Determine the value for a new position of the mouse. More... | |
Protected Member Functions inherited from QwtAbstractSlider | |
double | incrementedValue (double value, int stepCount) const |
void | incrementValue (int stepCount) |
virtual void | keyPressEvent (QKeyEvent *) QWT_OVERRIDE |
virtual void | mouseMoveEvent (QMouseEvent *) QWT_OVERRIDE |
virtual void | mousePressEvent (QMouseEvent *) QWT_OVERRIDE |
virtual void | mouseReleaseEvent (QMouseEvent *) QWT_OVERRIDE |
virtual void | scaleChange () QWT_OVERRIDE |
virtual void | sliderChange () |
Calling update() More... | |
virtual void | wheelEvent (QWheelEvent *) QWT_OVERRIDE |
Protected Member Functions inherited from QwtAbstractScale | |
QwtAbstractScaleDraw * | abstractScaleDraw () |
const QwtAbstractScaleDraw * | abstractScaleDraw () const |
void | rescale (double lowerBound, double upperBound, double stepSize) |
void | setAbstractScaleDraw (QwtAbstractScaleDraw *) |
Set a scale draw. More... | |
void | updateScaleDraw () |
Properties | |
Qt::Alignment | alignment |
int | borderWidth |
Return the border width. More... | |
KnobStyle | knobStyle |
int | knobWidth |
Return the width of the knob. More... | |
int | markerSize |
MarkerStyle | markerStyle |
int | numTurns |
double | totalAngle |
Properties inherited from QwtAbstractSlider | |
bool | invertedControls |
uint | pageSteps |
bool | readOnly |
uint | singleSteps |
bool | stepAlignment |
uint | totalSteps |
bool | tracking |
double | value |
Returns the current value. More... | |
bool | wrapping |
Properties inherited from QwtAbstractScale | |
double | lowerBound |
int | scaleMaxMajor |
int | scaleMaxMinor |
double | scaleStepSize |
double | upperBound |
Private Attributes | |
PrivateData * | m_data |
Additional Inherited Members | |
Public Slots inherited from QwtAbstractSlider | |
void | setValue (double value) |
Signals inherited from QwtAbstractSlider | |
void | sliderMoved (double value) |
void | sliderPressed () |
void | sliderReleased () |
void | valueChanged (double value) |
Notify a change of value. More... | |
The Knob Widget.
The QwtKnob widget imitates look and behavior of a volume knob on a radio. It looks similar to QDial - not to QwtDial.
The value range of a knob might be divided into several turns.
The layout of the knob depends on the knobWidth().
Setting a fixed knobWidth() is helpful to align several knobs with different scale labels.
Definition at line 42 of file qwt_knob.h.
enum QwtKnob::KnobStyle |
Style of the knob surface.
Depending on the KnobStyle the surface of the knob is filled from the brushes of the widget palette().
Definition at line 66 of file qwt_knob.h.
enum QwtKnob::MarkerStyle |
Marker type.
The marker indicates the current value on the knob The default setting is a Notch marker.
Definition at line 95 of file qwt_knob.h.
|
explicit |
Constructor.
Construct a knob with an angle of 270°. The style is QwtKnob::Raised and the marker style is QwtKnob::Notch. The width of the knob is set to 50 pixels.
parent | Parent widget |
Definition at line 103 of file qwt_knob.cpp.
|
virtual |
Destructor.
Definition at line 120 of file qwt_knob.cpp.
Qt::Alignment QwtKnob::alignment | ( | ) | const |
int QwtKnob::borderWidth | ( | ) | const |
|
protectedvirtual |
Handle QEvent::StyleChange and QEvent::FontChange;
event | Change event |
Reimplemented from QwtAbstractScale.
Definition at line 431 of file qwt_knob.cpp.
|
protectedvirtual |
|
protectedvirtual |
Draw the knob.
painter | painter |
knobRect | Bounding rectangle of the knob (without scale) |
Definition at line 489 of file qwt_knob.cpp.
|
protectedvirtual |
Draw the marker at the knob's front.
painter | Painter |
rect | Bounding rectangle of the knob without scale |
angle | Angle of the marker in degrees ( clockwise, 0 at the 12 o'clock position ) |
Definition at line 576 of file qwt_knob.cpp.
|
protectedvirtual |
Determine what to do when the user presses a mouse button.
pos | Mouse position |
True,when | pos is inside the circle of the knob. |
Implements QwtAbstractSlider.
Definition at line 347 of file qwt_knob.cpp.
QRect QwtKnob::knobRect | ( | ) | const |
Calculate the bounding rectangle of the knob without the scale
Definition at line 292 of file qwt_knob.cpp.
KnobStyle QwtKnob::knobStyle | ( | ) | const |
int QwtKnob::knobWidth | ( | ) | const |
int QwtKnob::markerSize | ( | ) | const |
MarkerStyle QwtKnob::markerStyle | ( | ) | const |
|
virtual |
int QwtKnob::numTurns | ( | ) | const |
|
protectedvirtual |
QwtRoundScaleDraw* QwtKnob::scaleDraw | ( | ) |
QwtRoundScaleDraw * QwtKnob::scaleDraw | ( | ) | const |
Definition at line 272 of file qwt_knob.cpp.
|
protectedvirtual |
Determine the value for a new position of the mouse.
pos | Mouse position |
Implements QwtAbstractSlider.
Definition at line 373 of file qwt_knob.cpp.
void QwtKnob::setAlignment | ( | Qt::Alignment | alignment | ) |
Set the alignment of the knob.
Similar to a QLabel::alignment() the flags decide how to align the knob inside of contentsRect().
The default setting is Qt::AlignCenter
alignment | Or'd alignment flags |
Definition at line 730 of file qwt_knob.cpp.
void QwtKnob::setBorderWidth | ( | int | borderWidth | ) |
Set the knob's border width.
borderWidth | new border width |
Definition at line 790 of file qwt_knob.cpp.
void QwtKnob::setKnobStyle | ( | KnobStyle | knobStyle | ) |
Set the knob type.
knobStyle | Knob type |
Definition at line 131 of file qwt_knob.cpp.
void QwtKnob::setKnobWidth | ( | int | width | ) |
Change the knob's width.
Setting a fixed value for the diameter of the knob is helpful for aligning several knobs in a row.
width | New width |
Definition at line 759 of file qwt_knob.cpp.
void QwtKnob::setMarkerSize | ( | int | size | ) |
Set the size of the marker.
When setting a size <= 0 the marker will automatically scaled to 40% of the radius of the knob.
Definition at line 812 of file qwt_knob.cpp.
void QwtKnob::setMarkerStyle | ( | MarkerStyle | markerStyle | ) |
Set the marker type of the knob.
markerStyle | Marker type |
Definition at line 155 of file qwt_knob.cpp.
void QwtKnob::setNumTurns | ( | int | numTurns | ) |
Set the number of turns.
When numTurns > 1 the knob can be turned several times around its axis
Definition at line 219 of file qwt_knob.cpp.
void QwtKnob::setScaleDraw | ( | QwtRoundScaleDraw * | scaleDraw | ) |
Change the scale draw of the knob
For changing the labels of the scales, it is necessary to derive from QwtRoundScaleDraw and overload QwtRoundScaleDraw::label().
Definition at line 259 of file qwt_knob.cpp.
void QwtKnob::setTotalAngle | ( | double | angle | ) |
Set the total angle by which the knob can be turned.
angle | Angle in degrees. |
The angle has to be between [10, 360] degrees. Angles above 360 ( so that the knob can be turned several times around its axis ) have to be set using setNumTurns().
The default angle is 270 degrees.
Definition at line 185 of file qwt_knob.cpp.
|
virtual |
Definition at line 833 of file qwt_knob.cpp.
double QwtKnob::totalAngle | ( | ) | const |
|
private |
Definition at line 174 of file qwt_knob.h.
|
readwrite |
Definition at line 50 of file qwt_knob.h.
|
readwrite |
Return the border width.
Definition at line 55 of file qwt_knob.h.
|
readwrite |
Definition at line 48 of file qwt_knob.h.
|
readwrite |
Return the width of the knob.
Definition at line 49 of file qwt_knob.h.
|
readwrite |
|
readwrite |
Definition at line 53 of file qwt_knob.h.
|
readwrite |
When the total angle is below 360° numTurns() is ceiled to 1.
Definition at line 52 of file qwt_knob.h.
|
readwrite |
Definition at line 51 of file qwt_knob.h.