Qwt User's Guide: QwtRoundScaleDraw Class Reference

- Main Page
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# QwtRoundScaleDraw Class Reference

Inheritance diagram for QwtRoundScaleDraw:

[legend]
Collaboration diagram for QwtRoundScaleDraw:

[legend]
List of all members.

## Detailed Description

A class for drawing round scales.

QwtRoundScaleDraw can be used to draw round scales. The circle segment can be adjusted by QwtRoundScaleDraw::setAngleRange(). The geometry of the scale can be specified with QwtRoundScaleDraw::moveCenter() and QwtRoundScaleDraw::setRadius().

After a scale division has been specified as a QwtScaleDiv object using QwtAbstractScaleDraw::setScaleDiv(const QwtScaleDiv &s), the scale can be drawn with the QwtAbstractScaleDraw::draw() member.

Definition at line 32 of file qwt_round_scale_draw.h.

## Public Member Functions
| QwtRoundScaleDraw ()
| QwtRoundScaleDraw (const QwtRoundScaleDraw &)
virtual | ~QwtRoundScaleDraw ()
QwtRoundScaleDraw & | operator= (const QwtRoundScaleDraw &other)
void | setRadius (int radius)
int | radius () const
void | moveCenter (int x, int y)
void | moveCenter (const QPoint &)
QPoint | center () const
void | setAngleRange (double angle1, double angle2)
virtual int | extent (const QPen &, const QFont &) const
## Protected Member Functions
virtual void | drawTick (QPainter *p, double val, int len) const
virtual void | drawBackbone (QPainter *p) const
virtual void | drawLabel (QPainter *p, double val) const

## Constructor & Destructor Documentation

QwtRoundScaleDraw::QwtRoundScaleDraw | ( |  | ) |

| Constructor. The range of the scale is initialized to [0, 100], The center is set to (50, 50) with a radius of 50. The angle range is set to [-135, 135]. Definition at line 46 of file qwt_round_scale_draw.cpp. References QwtAbstractScaleDraw::scaleMap(), QwtScaleMap::setPaintInterval(), and setRadius().

QwtRoundScaleDraw::QwtRoundScaleDraw | ( | const QwtRoundScaleDraw & |  | ) |

| Copy constructor. Definition at line 55 of file qwt_round_scale_draw.cpp. References d_data.

QwtRoundScaleDraw::~QwtRoundScaleDraw | ( |  | ) | `[virtual]`

| Destructor. Definition at line 63 of file qwt_round_scale_draw.cpp.

## Member Function Documentation

QPoint QwtRoundScaleDraw::center | ( |  | ) | const

| Get the center of the scale. Definition at line 113 of file qwt_round_scale_draw.cpp.

void QwtRoundScaleDraw::drawBackbone | ( | QPainter * | painter | ) | const`[protected, virtual]`

  | Draws the baseline of the scale Parameters:
  | painter | Painter
See also: drawTick(), drawLabel() Implements QwtAbstractScaleDraw. Definition at line 241 of file qwt_round_scale_draw.cpp. References QwtAbstractScaleDraw::map(), and radius().

void QwtRoundScaleDraw::drawLabel | ( | QPainter * | painter,
|  | double | value
| ) | const`[protected, virtual]`

  | Draws the label for a major scale tick Parameters:
  | painter | Painter
  | value | Value
See also: drawTick(), drawBackbone() Implements QwtAbstractScaleDraw. Definition at line 162 of file qwt_round_scale_draw.cpp. References QwtText::draw(), QwtAbstractScaleDraw::hasComponent(), QwtText::isEmpty(), QwtAbstractScaleDraw::label(), QwtAbstractScaleDraw::majTickLength(), QwtAbstractScaleDraw::map(), radius(), QwtAbstractScaleDraw::spacing(), QwtText::textSize(), QwtAbstractScaleDraw::tickLabel(), and QwtScaleMap::transform().

void QwtRoundScaleDraw::drawTick | ( | QPainter * | painter,
|  | double | value,
|  | int | len
| ) | const`[protected, virtual]`

  | Draw a tick Parameters:
  | painter | Painter
  | value | Value of the tick
  | len | Lenght of the tick
See also: drawBackbone(), drawLabel() Implements QwtAbstractScaleDraw. Definition at line 207 of file qwt_round_scale_draw.cpp. References QwtPainter::drawLine(), QwtAbstractScaleDraw::map(), radius(), and QwtScaleMap::transform().

int QwtRoundScaleDraw::extent | ( | const QPen & | pen,
|  | const QFont & | font
| ) | const`[virtual]`

  | Calculate the extent of the scale The extent is the distcance between the baseline to the outermost pixel of the scale draw. radius() + extent() is an upper limit for the radius of the bounding circle. Parameters:
  | pen | Pen that is used for painting backbone and ticks
  | font | Font used for painting the labels
See also: setMinimumExtent(), minimumExtent() Warning: The implemented algo is not too smart and calculates only an upper limit, that might be a few pixels too large Implements QwtAbstractScaleDraw. Definition at line 269 of file qwt_round_scale_draw.cpp. References QwtScaleDiv::contains(), QwtAbstractScaleDraw::hasComponent(), QwtText::isEmpty(), QwtAbstractScaleDraw::label(), QwtAbstractScaleDraw::map(), QwtAbstractScaleDraw::scaleDiv(), QwtText::textSize(), QwtAbstractScaleDraw::tickLabel(), QwtScaleDiv::ticks(), and QwtScaleMap::transform(). Referenced by QwtKnob::minimumSizeHint().

void QwtRoundScaleDraw::moveCenter | ( | const QPoint & | center | ) |

  | Move the center of the scale draw, leaving the radius unchanged Parameters:
  | center | New center
See also: setRadius Definition at line 107 of file qwt_round_scale_draw.cpp.

QwtRoundScaleDraw & QwtRoundScaleDraw::operator= | ( | const QwtRoundScaleDraw & | other | ) |

| Assignment operator. Definition at line 69 of file qwt_round_scale_draw.cpp. References d_data.

int QwtRoundScaleDraw::radius | ( |  | ) | const

| Get the radius Radius is the radius of the backbone without ticks and labels. See also: setRadius(), extent() Definition at line 96 of file qwt_round_scale_draw.cpp. Referenced by drawBackbone(), drawLabel(), and drawTick().

void QwtRoundScaleDraw::setAngleRange | ( | double | angle1,
|  | double | angle2
| ) |

  | Adjust the baseline circle segment for round scales. The baseline will be drawn from min(angle1,angle2) to max(angle1, angle2). The default setting is [ -135, 135 ]. An angle of 0 degrees corresponds to the 12 o'clock position, and positive angles count in a clockwise direction. Parameters:
  | angle1 |
  | angle2 | boundaries of the angle interval in degrees.
Warning: The angle range is limited to [-360, 360] degrees. Angles exceeding this range will be clipped. For angles more than 359 degrees above or below min(angle1, angle2), scale marks will not be drawn. If you need a counterclockwise scale, use QwtScaleDiv::setRange Definition at line 135 of file qwt_round_scale_draw.cpp. References QwtAbstractScaleDraw::scaleMap(), and QwtScaleMap::setPaintInterval(). Referenced by QwtKnob::setTotalAngle().

void QwtRoundScaleDraw::setRadius | ( | int | radius | ) |

  | Change of radius the scale Radius is the radius of the backbone without ticks and labels. Parameters:
  | radius | New Radius
See also: moveCenter Definition at line 84 of file qwt_round_scale_draw.cpp. Referenced by QwtRoundScaleDraw().