QwtRoundScaleDraw(3)

NAME
QwtRoundScaleDraw -

SYNOPSIS

Inherits QwtAbstractScaleDraw.

Inherited by QwtDialScaleDraw.

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

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