Man Linux: Main Page and Category List

NAME

       QwtScaleDraw -

SYNOPSIS

       Inherits QwtDiMap.

       Inherited by QwtDialScaleDraw.

Detailed Description

       A class for drawing scales.

       QwtScaleDraw can be used to draw linear or logarithmic scales. A scale
       has an origin, an orientation and a length, which all can be specified
       with QwtScaleDraw::setGeometry(). The labels can be rotated and aligned
       to the ticks using QwtScaleDraw::setLabelRotation(),
       QwtScaleDraw::setLabelAlignment().

       After a scale division has been specified as a QwtScaleDiv object using
       QwtScaleDraw::setScale(const QwtScaleDiv &s), or determined internally
       using QwtScaleDraw::setScale(double vmin, double vmax, int maxMajIntv,
       int maxMinIntv, double step = 0.0, int logarithmic = 0), the scale can
       be drawn with the QwtScaleDraw::draw() member.

       Definition at line 38 of file qwt_scldraw.h.

   Public Types
       enum Orientation { Bottom, Top, Left, Right, Round }
       enum Option { None =  0, Backbone =  1 }

   Public Member Functions
       QwtScaleDraw ()
       virtual ~QwtScaleDraw ()
       void setScale (const QwtScaleDiv &s)
       void setScale (double vmin, double vmax, int maxMajIntv, int
           maxMinIntv, double step=0.0, int logarithmic=0)
       void setOptions (int opt)
       int options () const
       void setGeometry (int xorigin, int yorigin, int length, Orientation o)
       int x () const
       int y () const
       int length () const
       Orientation orientation () const
       void setAngleRange (double angle1, double angle2)
       void setLabelFormat (char f, int prec, int fieldwidth=0)
       void setLabelAlignment (int align)
       void setLabelRotation (double rotation)
       void setTickLength (unsigned int minLen, unsigned int medLen, unsigned
           int majLen)
       void setMargin (uint hMargin, uint vMargin)
       const QwtScaleDiv & scaleDiv () const
       int maxWidth (const QPen &pen, const QFontMetrics &fm) const
       int maxHeight (const QPen &pen, const QFontMetrics &fm) const
       void minBorderDist (const QFontMetrics &fm, int &start, int &end) const
       int minLabelDist (const QFontMetrics &fm) const
       int minHeight (const QPen &pen, const QFontMetrics &fm) const
       int minWidth (const QPen &pen, const QFontMetrics &fm) const
       void labelFormat (char &f, int &prec, int &fieldwidth) const
       int labelAlignment () const
       double labelRotation () const
       void tickLength (unsigned int &minLen, unsigned int &medLen, unsigned
           int &majLen) const
       unsigned int majTickLength () const
       virtual void draw (QPainter *p) const
       virtual QString label (double) const

   Protected Member Functions
       virtual void labelPlacement (const QFontMetrics &, double val, QPoint
           &pos, int &alignment, double &rotation) const
       virtual int maxLabelHeight (const QFontMetrics &) const
       virtual int maxLabelWidth (const QFontMetrics &) const
       QRect labelBoundingRect (const QFontMetrics &, double val) const
       void drawTick (QPainter *p, double val, int len) const
       void drawBackbone (QPainter *p) const
       void drawLabel (QPainter *p, double val) const
       QWMatrix labelWorldMatrix (const QFontMetrics &, const QPoint &, int
           alignment, double rotation, const QString &) const

Member Enumeration Documentation

   enum QwtScaleDraw::Orientation
       Orientation/Position of the scale draw

       See also:
           QwtScaleDraw::setGeometry

       Definition at line 45 of file qwt_scldraw.h.

       Referenced by orientation().

Constructor & Destructor Documentation

   QwtScaleDraw::QwtScaleDraw ()
       Constructor.

       The range of the scale is initialized to [0, 100], the angle range is
       set to [-135, 135], the geometry is initialized such that the origin is
       at (0,0), the length is 100, and the orientation is
       QwtScaleDraw::Bottom. Definition at line 29 of file qwt_scldraw.cpp.

       References setGeometry(), and setScale().

   QwtScaleDraw::~QwtScaleDraw () [virtual]
       Destructor.

       Definition at line 52 of file qwt_scldraw.cpp.

Member Function Documentation

   void QwtScaleDraw::draw (QPainter * p) const [virtual]
       Draw the scale.

       Parameters:
           p the painter

       Definition at line 104 of file qwt_scldraw.cpp.

       References drawBackbone(), drawLabel(), drawTick(),
       QwtScaleDiv::logScale(), QwtScaleDiv::majCnt(), QwtScaleDiv::majMark(),
       QwtScaleDiv::majStep(), QwtScaleDiv::minCnt(), QwtScaleDiv::minMark(),
       and options().

       Referenced by QwtThermo::draw(), QwtSlider::draw(), QwtScale::draw(),
       QwtKnob::draw(), QwtDial::drawScale(), and QwtPlot::printScale().

   void QwtScaleDraw::drawBackbone (QPainter * p) const [protected]
       Draws the baseline of the scale.

       Definition at line 374 of file qwt_scldraw.cpp.

       References QwtPainter::drawLine(), QwtDiMap::i1(), and QwtDiMap::i2().

       Referenced by draw().

   void QwtScaleDraw::drawLabel (QPainter * p, double val) const [protected]
       Draws the number label for a major scale tick.

       Definition at line 204 of file qwt_scldraw.cpp.

       References QwtPainter::drawText(), label(), labelPlacement(), and
       labelWorldMatrix().

       Referenced by draw().

   void QwtScaleDraw::drawTick (QPainter * p, double val, int len) const
       [protected]
       Draws a single scale tick.

       Definition at line 160 of file qwt_scldraw.cpp.

       References QwtPainter::drawLine(), and QwtDiMap::transform().

       Referenced by draw().

   QString QwtScaleDraw::label (double value) const [virtual]
       Convert a value into its representing label using the labelFormat.

       Parameters:
           value Value

       Returns:
           Label string.

       See also:
           QwtScaleDraw::setLabelFormat()

       Reimplemented in QwtDialScaleDraw.

       Definition at line 1045 of file qwt_scldraw.cpp.

       Referenced by drawLabel(), QwtDialScaleDraw::label(),
       labelBoundingRect(), and labelPlacement().

   int QwtScaleDraw::labelAlignment () const
       Returns:
           the label alignment

       See also:
           setLabelAlignment(), labelRotation()

       Definition at line 588 of file qwt_scldraw.cpp.

   QRect QwtScaleDraw::labelBoundingRect (const QFontMetrics & fm, double val)
       const [protected]
       Find the bounding rect for the label. The coordinates of the rect are
       relative to margin + ticklength from the backbone in direction of the
       tick. Definition at line 793 of file qwt_scldraw.cpp.

       References label(), labelPlacement(), and labelWorldMatrix().

       Referenced by maxLabelHeight(), maxLabelWidth(), minBorderDist(), and
       minLabelDist().

   void QwtScaleDraw::labelFormat (char & f, int & prec, int & fieldwidth)
       const
       Return the number format for the major scale labels.

       Format character, precision and fieldwidth have the same meaning as for
       sprintf().

       Parameters:
           f format character ’e’, ’f’ or ’g’
           prec

           · for ’e’, ’f’: the number of digits after the radix character
             (point)

           · for ’g’: the maximum number of significant digits

           fieldwidth fieldwidth

       See also:
           setLabelFormat()

       Definition at line 679 of file qwt_scldraw.cpp.

       Referenced by QwtScale::labelFormat().

   void QwtScaleDraw::labelPlacement (const QFontMetrics &, double val, QPoint
       & pos, int & alignment, double & rotation) const [protected, virtual]
       Find position, alignment and rotation of the label.

       Definition at line 232 of file qwt_scldraw.cpp.

       References label(), QwtScaleDiv::logScale(), QwtScaleDiv::majStep(),
       QwtDiMap::transform(), x(), and y().

       Referenced by drawLabel(), and labelBoundingRect().

   double QwtScaleDraw::labelRotation () const
       Returns:
           the label rotation

       See also:
           setLabelRotation(), labelAlignment()

       Definition at line 555 of file qwt_scldraw.cpp.

   QWMatrix QwtScaleDraw::labelWorldMatrix (const QFontMetrics &, const QPoint
       &, int alignment, double rotation, const QString &) const [protected]
       Return the world matrix for painting the label.

       Definition at line 335 of file qwt_scldraw.cpp.

       References x(), and y().

       Referenced by drawLabel(), and labelBoundingRect().

   int QwtScaleDraw::length () const
       Return length.

       Definition at line 1076 of file qwt_scldraw.cpp.

       Referenced by QwtPlot::printScale().

   unsigned int QwtScaleDraw::majTickLength () const
       Return the length of the major ticks

       See also:
           QwtScaleDraw::tickLength()

       Definition at line 727 of file qwt_scldraw.cpp.

       Referenced by QwtPlotLayout::minimumSizeHint().

   int QwtScaleDraw::maxHeight (const QPen & pen, const QFontMetrics & fm)
       const
       Parameters:
           pen pen
           fm font metrics

       Returns:
           the maximum height of the scale

       Definition at line 513 of file qwt_scldraw.cpp.

       References maxLabelHeight().

       Referenced by QwtScale::layoutScale(), maxLabelHeight(), and
       QwtDial::scaleContentsRect().

   int QwtScaleDraw::maxLabelHeight (const QFontMetrics & fm) const
       [protected, virtual]
       Parameters:
           fm QFontMetrics

       Returns:
           the maximum width of a label

       Definition at line 764 of file qwt_scldraw.cpp.

       References labelBoundingRect(), QwtScaleDiv::logScale(),
       QwtScaleDiv::majCnt(), QwtScaleDiv::majMark(), QwtScaleDiv::majStep(),
       and maxHeight().

       Referenced by maxHeight(), and minHeight().

   int QwtScaleDraw::maxLabelWidth (const QFontMetrics & fm) const [protected,
       virtual]
       Parameters:
           fm QFontMetrics

       Returns:
           the maximum width of a label

       Definition at line 736 of file qwt_scldraw.cpp.

       References labelBoundingRect(), QwtScaleDiv::logScale(),
       QwtScaleDiv::majCnt(), QwtScaleDiv::majMark(), QwtScaleDiv::majStep(),
       and maxWidth().

       Referenced by maxWidth(), minHeight(), and minWidth().

   int QwtScaleDraw::maxWidth (const QPen & pen, const QFontMetrics & fm)
       const
       Parameters:
           pen pen
           fm font metrics

       Returns:
           the maximum width of the scale

       Definition at line 487 of file qwt_scldraw.cpp.

       References maxLabelWidth().

       Referenced by QwtScale::layoutScale(), maxLabelWidth(), and
       QwtDial::scaleContentsRect().

   void QwtScaleDraw::minBorderDist (const QFontMetrics & fm, int & start, int
       & end) const
       Determine the minimum border distance.

       This member function returns the minimum space needed to draw the mark
       labels at the scale’s endpoints.

       Parameters:
           fm QFontMetrics
           start start border distance
           end end border distance

       Definition at line 839 of file qwt_scldraw.cpp.

       References labelBoundingRect(), QwtScaleDiv::majCnt(), and
       QwtScaleDiv::majMark().

       Referenced by QwtSlider::layoutSlider(), QwtThermo::layoutThermo(),
       QwtScale::minBorderDist(), minHeight(), QwtSlider::minimumSizeHint(),
       and minWidth().

   int QwtScaleDraw::minHeight (const QPen & pen, const QFontMetrics & fm)
       const
       Parameters:
           pen pen
           fm font metrics

       Returns:
           the minimum height required to draw the scale including the minimum
           border distance

       Definition at line 960 of file qwt_scldraw.cpp.

       References QwtScaleDiv::majCnt(), maxLabelHeight(), maxLabelWidth(),
       minBorderDist(), QwtScaleDiv::minCnt(), and minLabelDist().

       Referenced by QwtScale::dimForLength(), QwtThermo::minimumSizeHint(),
       QwtSlider::minimumSizeHint(), QwtScale::minimumSizeHint(),
       QwtKnob::minimumSizeHint(), QwtDial::minimumSizeHint(), and
       QwtDial::sizeHint().

   int QwtScaleDraw::minLabelDist (const QFontMetrics & fm) const
       Determine the minimum distance between two labels, that is necessairy
       that the texts don’t overlap.

       Parameters:
           fm QFontMetrics

       Returns:
           the maximum width of a label

       Warning:
           Not implemented for round scales

       Definition at line 880 of file qwt_scldraw.cpp.

       References labelBoundingRect(), QwtScaleDiv::majCnt(), and
       QwtScaleDiv::majMark().

       Referenced by minHeight(), and minWidth().

   int QwtScaleDraw::minWidth (const QPen & pen, const QFontMetrics & fm)
       const
       Parameters:
           pen pen
           fm font metrics

       Returns:
           the minimum width required to draw the scale including the minimum
           border distance

       Definition at line 1000 of file qwt_scldraw.cpp.

       References QwtScaleDiv::majCnt(), maxLabelWidth(), minBorderDist(),
       QwtScaleDiv::minCnt(), and minLabelDist().

       Referenced by QwtScale::dimForLength(), QwtThermo::minimumSizeHint(),
       QwtSlider::minimumSizeHint(), and QwtScale::minimumSizeHint().

   int QwtScaleDraw::options () const
       Returns:
           scale draw options

       Definition at line 65 of file qwt_scldraw.cpp.

       Referenced by draw(), and QwtDial::setScaleOptions().

   QwtScaleDraw::Orientation QwtScaleDraw::orientation () const
       Return scale orientation.

       Definition at line 1082 of file qwt_scldraw.cpp.

       References Orientation.

       Referenced by QwtScale::dimForLength(), QwtScale::draw(),
       QwtScale::layoutScale(), QwtScale::minimumSizeHint(),
       QwtScale::position(), QwtThermo::sizePolicy(), and
       QwtScale::sizePolicy().

   const QwtScaleDiv& QwtScaleDraw::scaleDiv () const
       Returns:
           scale division

       Definition at line 74 of file qwt_scldraw.h.

       Referenced by QwtThermo::setRange(), QwtScaleIf::setScale(),
       QwtScale::setScaleDiv(), QwtScaleIf::setScaleMaxMajor(),
       QwtScaleIf::setScaleMaxMinor(), and QwtPlot::sizeHint().

   void QwtScaleDraw::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 settings have no effect if the scale orientation is not
       set to QwtScaleDraw::Round. 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 611 of file qwt_scldraw.cpp.
       References qwtLim(), and QwtDiMap::setIntRange().
       Referenced by QwtDial::drawScale(), and QwtKnob::setTotalAngle().
   void QwtScaleDraw::setGeometry (int xorigin, int yorigin, int length,
       Orientation o)
       Specify the geometry of the scale.
       The parameters xorigin, yorigin and length have different meanings,
       dependent on the orientation:
       QwtScaleDraw::Left
           The origin is the topmost point of the baseline. The baseline is a
           vertical line with the specified length. Scale marks and labels are
           drawn at the left of the baseline.
       QwtScaleDraw::Right
           The origin is the topmost point of the baseline. The baseline is a
           vertical line with the specified length. Scale marks and labels are
           drawn at the right of the baseline.
       QwtScaleDraw::Top
           The origin is the leftmost point of the baseline. The baseline is a
           horizontal line with the specified length. Scale marks and labels
           are drawn above the baseline.
       QwtScaleDraw::Bottom
           The origin is the leftmost point of the baseline. The baseline is a
           horizontal line with the specified length. Scale marks and labels
           are drawn below the baseline.
       QwtScaleDraw::Round
           The origin is the top left corner of the bounding rectangle of the
           baseline circle. The baseline is the segment of a circle with a
           diameter of the specified length. Scale marks and labels are drawn
           outside the baseline circle.
       Parameters:
           xorigin x coordinate of the origin
           yorigin y coordinate of the origin
           length length or diameter of the scale, excluding border distance
           o The orientation
       Definition at line 448 of file qwt_scldraw.cpp.
       References QwtDiMap::setIntRange().
       Referenced by QwtDial::drawScale(), QwtScale::layoutScale(),
       QwtSlider::layoutSlider(), QwtThermo::layoutThermo(),
       QwtPlot::printScale(), QwtDial::QwtDial(), QwtKnob::QwtKnob(),
       QwtScaleDraw(), QwtSlider::QwtSlider(), and QwtScale::setPosition().
   void QwtScaleDraw::setLabelAlignment (int alignment)
       Labels are aligned to the point ticklength + margin away from the
       backbone. The alignment is relative to the orientation of the label
       text. In case of an alignment of 0 the label will be aligned depending
       on the orientation of the scale:
       QwtScaleDraw::Top: Qt::AlignHCenter | Qt::AlignTop
        QwtScaleDraw::Bottom: Qt::AlignHCenter | Qt::AlignBottom
        QwtScaleDraw::Left: Qt::AlignLeft | Qt::AlignVCenter
        QwtScaleDraw::Right: Qt::AlignRight | Qt::AlignVCenter
       Changing the alignment is often necessary for rotated labels.
       Parameters:
           alignment Or’d Qt::AlignmentFlags <see qnamespace.h>
       Warning:
           Alignment of labels is not implemented for round scales.
       See also:
           QwtScaleDraw::setLabelRotation(), QwtScaleDraw::labelRotation(),
           QwtScaleDraw::labelAlignment()
       Definition at line 579 of file qwt_scldraw.cpp.
       Referenced by QwtScale::setLabelAlignment().
   void QwtScaleDraw::setLabelFormat (char f, int prec, int fieldwidth = 0)
       Set the number format for the major scale labels.
       Format character, precision and fieldwidth have the same meaning as for
       sprintf().
       Parameters:
           f format character ’e’, ’f’, ’g’
           prec
           · for ’e’, ’f’: the number of digits after the radix character
             (point)
           · for ’g’: the maximum number of significant digits
           fieldwidth fieldwidth
       Note:
           precision and fieldwidth must be in the range 0, 1, .., 99. Invalid
           input is discarded.
       See also:
           labelFormat()
       Definition at line 646 of file qwt_scldraw.cpp.
       Referenced by QwtScale::setLabelFormat().
   void QwtScaleDraw::setLabelRotation (double rotation)
       Rotate all labels.
       Parameters:
           rotation Angle in degrees. When changing the label rotation, the
           label alignment might be adjusted too.
       See also:
           setLabelAlignment(), labelRotation(), labelAlignment().
       Warning:
           Rotation of labels is not implemented for round scales.
       Definition at line 546 of file qwt_scldraw.cpp.
       Referenced by QwtScale::setLabelRotation().
   void QwtScaleDraw::setMargin (uint hMargin, uint vMargin)
       Set the margins of the ticks
       Parameters:
           hMargin Horizontal margin
           vMargin Vertical margin
       Definition at line 692 of file qwt_scldraw.cpp.
   void QwtScaleDraw::setOptions (int opt)
       Change the scale draw options.
       Definition at line 57 of file qwt_scldraw.cpp.
       Referenced by QwtDial::setScaleOptions().
   void QwtScaleDraw::setScale (double x1, double x2, int maxMajIntv, int
       maxMinIntv, double step = 0.0, int logscale = 0)
       Adjust the range of the scale.
       If step == 0.0, the step width is calculated automatically dependent on
       the maximal number of scale ticks.
       Parameters:
           x1 Value at the left/low endpoint of the scale
           x2 Value at the right/high endpoint of the scale
           maxMajIntv Max. number of major step intervals
           maxMinIntv Max. number of minor step intervals
           step Step size (default : 0.0)
           logscale Logarithmic scale (default : 0)
       Definition at line 82 of file qwt_scldraw.cpp.
       References QwtScaleDiv::hBound(), QwtScaleDiv::lBound(),
       QwtScaleDiv::logScale(), QwtScaleDiv::rebuild(), and
       QwtDiMap::setDblRange().
   void QwtScaleDraw::setScale (const QwtScaleDiv & sd)
       Change the scale division.
       Parameters:
           sd new scale division
       Definition at line 94 of file qwt_scldraw.cpp.
       References QwtScaleDiv::hBound(), QwtScaleDiv::lBound(),
       QwtScaleDiv::logScale(), and QwtDiMap::setDblRange().
       Referenced by QwtScaleDraw(), QwtScaleIf::QwtScaleIf(),
       QwtSlider::rangeChange(), QwtSlider::scaleChange(),
       QwtThermo::setRange(), QwtScaleIf::setScale(), QwtScale::setScaleDiv(),
       QwtScaleIf::setScaleMaxMajor(), QwtScaleIf::setScaleMaxMinor(), and
       QwtDial::updateScale().
   void QwtScaleDraw::setTickLength (unsigned int minLen, unsigned int medLen,
       unsigned int majLen)
       Set the length of the ticks Definition at line 701 of file
       qwt_scldraw.cpp.
       Referenced by QwtDial::setScaleOptions(), and QwtDial::setScaleTicks().
   void QwtScaleDraw::tickLength (unsigned int & minLen, unsigned int &
       medLen, unsigned int & majLen) const
       Return the length of the ticks
       See also:
           QwtScaleDraw::majTickLength()
       Definition at line 715 of file qwt_scldraw.cpp.
   int QwtScaleDraw::x () const
       Return x origin.
       Definition at line 1064 of file qwt_scldraw.cpp.
       Referenced by labelPlacement(), labelWorldMatrix(), and
       QwtPlot::printScale().
   int QwtScaleDraw::y () const
       Return y origin.
       Definition at line 1070 of file qwt_scldraw.cpp.
       Referenced by labelPlacement(), labelWorldMatrix(), and
       QwtPlot::printScale().

Author

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