QwtKnob(3)

NAME
QwtKnob - The Knob Widget.

SYNOPSIS

#include <qwt_knob.h>

Inherits QwtAbstractSlider.

  Public Types
enum KnobStyle { Flat, Raised, Sunken, Styled }
Style of the knob surface.
enum MarkerStyle { NoMarker = -1, Tick, Triangle, Dot, Nub, Notch }
Marker type.

  Public Member Functions
QwtKnob (QWidget *parent=NULL)
Constructor.
virtual ~QwtKnob ()
Destructor.
void setAlignment (Qt::Alignment)
Set the alignment of the knob.
Qt::Alignment alignment () const
void setKnobWidth (int)
Change the knob's width.
int knobWidth () const
Return the width of the knob.
void setNumTurns (int)
Set the number of turns.
int numTurns () const
void setTotalAngle (double angle)
Set the total angle by which the knob can be turned.
double totalAngle () const
void setKnobStyle (KnobStyle)
Set the knob type.
KnobStyle knobStyle () const
void setBorderWidth (int)
Set the knob's border width.
int borderWidth () const
Return the border width.
void setMarkerStyle (MarkerStyle)
Set the marker type of the knob.
MarkerStyle markerStyle () const
void setMarkerSize (int)
Set the size of the marker.
int markerSize () const
virtual QSize sizeHint () const override
virtual QSize minimumSizeHint () const override
void setScaleDraw (QwtRoundScaleDraw *)
const QwtRoundScaleDraw * scaleDraw () const
QwtRoundScaleDraw * scaleDraw ()
QRect knobRect () const

  Protected Member Functions
virtual void paintEvent (QPaintEvent *) override
virtual void changeEvent (QEvent *) override
virtual void drawKnob (QPainter *, const QRectF &) const
Draw the knob.
virtual void drawFocusIndicator (QPainter *) const
virtual void drawMarker (QPainter *, const QRectF &, double angle) const
Draw the marker at the knob's front.
virtual double scrolledTo (const QPoint &) const override
Determine the value for a new position of the mouse.
virtual bool isScrollPosition (const QPoint &) const override
Determine what to do when the user presses a mouse button.

  Additional Inherited Members

Detailed Description

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().

•   width > 0 The diameter of the knob is fixed and the knob is aligned according to the alignment() flags inside of the contentsRect().

•   width <= 0 The knob is extended to the minimum of width/height of the contentsRect() and aligned in the other direction according to alignment().

Setting a fixed knobWidth() is helpful to align several knobs with different scale labels.

Definition at line 42 of file qwt_knob.h.

Member Enumeration Documentation

  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().

See also
    setKnobStyle(), knobStyle()

Enumerator

Flat
    Fill the knob with a brush from QPalette::Button.

Raised
    Build a gradient from QPalette::Midlight and QPalette::Button.

Sunken
    Build a gradient from QPalette::Midlight, QPalette::Button and QPalette::Midlight

Styled
    Build a radial gradient from QPalette::Button like it is used for QDial in various Qt styles.

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.

See also
    setMarkerStyle(), setMarkerSize()

Enumerator

NoMarker
    Don't paint any marker.

Tick
    Paint a single tick in QPalette::ButtonText color.

Triangle
    Paint a triangle in QPalette::ButtonText color.

Dot Paint a circle in QPalette::ButtonText color.

Nub Draw a raised ellipse with a gradient build from QPalette::Light and QPalette::Mid

Notch
    Draw a sunken ellipse with a gradient build from QPalette::Light and QPalette::Mid

Definition at line 95 of file qwt_knob.h.

Constructor & Destructor Documentation

  QwtKnob::QwtKnob (QWidget * parent = NULL) [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.

Parameters
    parent Parent widget

See also
    setTotalAngle()

Definition at line 103 of file qwt_knob.cpp.

Member Function Documentation

  Qt::Alignment QwtKnob::alignment () const

Returns
    Alignment of the knob inside of contentsRect()

See also
    setAlignment(), knobWidth(), knobRect()

Definition at line 743 of file qwt_knob.cpp.

  void QwtKnob::changeEvent (QEvent * event) [override], [protected], [virtual]
Handle QEvent::StyleChange and QEvent::FontChange;

Parameters
    event Change event

Reimplemented from QwtAbstractScale.

Definition at line 431 of file qwt_knob.cpp.

  void QwtKnob::drawFocusIndicator (QPainter * painter) const [protected], [virtual]
Draw the focus indicator

Parameters
    painter Painter

Definition at line 697 of file qwt_knob.cpp.

  void QwtKnob::drawKnob (QPainter * painter, const QRectF & knobRect) const [protected], [virtual]

Draw the knob.

Parameters
    painter painter
    knobRect Bounding rectangle of the knob (without scale)

Definition at line 489 of file qwt_knob.cpp.

  void QwtKnob::drawMarker (QPainter * painter, const QRectF & rect, double angle) const [protected], [virtual]

Draw the marker at the knob's front.

Parameters
    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.

  bool QwtKnob::isScrollPosition (const QPoint & pos) const [override], [protected], [virtual]

Determine what to do when the user presses a mouse button.

Parameters
    pos Mouse position

Return values
    True,when pos is inside the circle of the knob.

See also
    scrolledTo()

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

Returns
    Bounding rectangle of the knob

See also
    knobWidth(), alignment(), QWidget::contentsRect()

Definition at line 292 of file qwt_knob.cpp.

  QwtKnob::KnobStyle QwtKnob::knobStyle () const

Returns
    Marker type of the knob

See also
    setKnobStyle(), setBorderWidth()

Definition at line 144 of file qwt_knob.cpp.

  int QwtKnob::markerSize () const

Returns
    Marker size

See also
    setMarkerSize()

Definition at line 825 of file qwt_knob.cpp.

  QwtKnob::MarkerStyle QwtKnob::markerStyle () const

Returns
    Marker type of the knob

See also
    setMarkerStyle(), setMarkerSize()

Definition at line 168 of file qwt_knob.cpp.

  QSize QwtKnob::minimumSizeHint () const [override], [virtual]

Returns
    Minimum size hint

See also
    sizeHint()

Definition at line 843 of file qwt_knob.cpp.

  int QwtKnob::numTurns () const

Returns
    Number of turns.

When the total angle is below 360° numTurns() is ceiled to 1.

See also
    setNumTurns(), setTotalAngle(), totalAngle()

Definition at line 245 of file qwt_knob.cpp.

  void QwtKnob::paintEvent (QPaintEvent * event) [override], [protected], [virtual]
Repaint the knob

Parameters
    event Paint event

Definition at line 451 of file qwt_knob.cpp.

  QwtRoundScaleDraw * QwtKnob::scaleDraw ()

Returns
    the scale draw of the knob

See also
    setScaleDraw()

Definition at line 281 of file qwt_knob.cpp.

  const QwtRoundScaleDraw * QwtKnob::scaleDraw () const

Returns
    the scale draw of the knob

See also
    setScaleDraw()

Definition at line 272 of file qwt_knob.cpp.

  double QwtKnob::scrolledTo (const QPoint & pos) const [override], [protected], [virtual]

Determine the value for a new position of the mouse.

Parameters
    pos Mouse position

Returns
    Value for the mouse position

See also
    isScrollPosition()

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

Parameters
    alignment Or'd alignment flags

See also
    alignment(), setKnobWidth(), knobRect()

Definition at line 730 of file qwt_knob.cpp.

  void QwtKnob::setBorderWidth (int borderWidth)

Set the knob's border width.

Parameters
    borderWidth new border width

Definition at line 790 of file qwt_knob.cpp.

  void QwtKnob::setKnobStyle (KnobStyle knobStyle)

Set the knob type.

Parameters
    knobStyle Knob type

See also
    knobStyle(), setBorderWidth()

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.

Parameters
    width New width

See also
    knobWidth(), setAlignment()

Note
    Modifies the sizePolicy()

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.

See also
    markerSize(), markerStyle()

Definition at line 812 of file qwt_knob.cpp.

  void QwtKnob::setMarkerStyle (MarkerStyle markerStyle)

Set the marker type of the knob.

Parameters
    markerStyle Marker type

See also
    markerStyle(), setMarkerSize()

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

•   otherwise the total angle is floored to 360°.

See also
    numTurns(), totalAngle(), setTotalAngle()

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().

See also
    scaleDraw()

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.

Parameters
    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.

See also
    totalAngle(), setNumTurns()

Definition at line 185 of file qwt_knob.cpp.

  QSize QwtKnob::sizeHint () const [override], [virtual]

Returns
    sizeHint()

Definition at line 833 of file qwt_knob.cpp.

  double QwtKnob::totalAngle () const

Returns
    the total angle

See also
    setTotalAngle(), setNumTurns(), numTurns()

Definition at line 205 of file qwt_knob.cpp.

Author

Generated automatically by Doxygen for Qwt User's Guide from the source code.