#include <qwt_scldraw.h>
Inheritance diagram for QwtScaleDraw:

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) |
| 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 |
Private Attributes | |
| int | d_options |
| QwtScaleDiv | d_scldiv |
| Orientation | d_orient |
| int | d_xorg |
| int | d_yorg |
| int | d_len |
| unsigned int | d_hpad |
| unsigned int | d_vpad |
| unsigned int | d_medLen |
| unsigned int | d_majLen |
| unsigned int | d_minLen |
| int | d_minAngle |
| int | d_maxAngle |
| double | d_xCenter |
| double | d_yCenter |
| double | d_radius |
| char | d_fmt |
| int | d_prec |
| int | d_fieldwidth |
| int | d_labelAlignment |
| double | d_labelRotation |
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.
|
|
Definition at line 46 of file qwt_scldraw.h. |
|
|
Orientation/Position of the scale draw
Definition at line 45 of file qwt_scldraw.h. Referenced by orientation(), QwtScale::position(), QwtPlot::printScale(), QwtScale::QwtScale(), QwtSlider::QwtSlider(), and QwtScale::setPosition(). |
|
|
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 27 of file qwt_scldraw.cpp. References Bottom, setGeometry(), and setScale(). |
|
|
Destructor.
Definition at line 47 of file qwt_scldraw.cpp. |
|
|
Draw the scale.
Definition at line 95 of file qwt_scldraw.cpp. References Backbone, d_majLen, d_medLen, d_minLen, d_scldiv, drawBackbone(), drawLabel(), drawTick(), QwtScaleDiv::logScale(), QwtScaleDiv::majCnt(), QwtScaleDiv::majMark(), QwtScaleDiv::majStep(), QwtScaleDiv::minCnt(), QwtScaleDiv::minMark(), options(), qwtAbs, and step_eps. Referenced by QwtThermo::draw(), QwtSlider::draw(), QwtScale::draw(), QwtKnob::draw(), QwtDial::drawScale(), and QwtPlot::printScale(). |
|
|
Draws the baseline of the scale.
Definition at line 352 of file qwt_scldraw.cpp. References Bottom, d_len, d_orient, d_xorg, d_yorg, QwtPainter::drawLine(), QwtDiMap::i1(), QwtDiMap::i2(), Left, qwtMax, qwtMin, Right, Round, and Top. Referenced by draw(). |
|
||||||||||||
|
Draws the number label for a major scale tick.
Definition at line 195 of file qwt_scldraw.cpp. References QwtPainter::drawText(), label(), labelPlacement(), and labelWorldMatrix(). Referenced by draw(). |
|
||||||||||||||||
|
Draws a single scale tick.
Definition at line 151 of file qwt_scldraw.cpp. References Bottom, d_minAngle, d_orient, d_radius, d_xCenter, d_xorg, d_yCenter, d_yorg, QwtPainter::drawLine(), Left, M_PI, qwtInt, Right, Round, Top, and QwtDiMap::transform(). Referenced by draw(). |
|
|
Convert a value into its representing label using the labelFormat.
Reimplemented in QwtDialScaleDraw. Definition at line 985 of file qwt_scldraw.cpp. References d_fieldwidth, d_fmt, and d_prec. Referenced by drawLabel(), QwtDialScaleDraw::label(), labelBoundingRect(), and labelPlacement(). |
|
|
Definition at line 564 of file qwt_scldraw.cpp. References d_labelAlignment. |
|
||||||||||||
|
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 733 of file qwt_scldraw.cpp. References d_fieldwidth, label(), labelPlacement(), labelWorldMatrix(), and QwtPainter::map(). Referenced by maxLabelHeight(), maxLabelWidth(), minBorderDist(), and minLabelDist(). |
|
||||||||||||||||
|
Format character and precision have the same meaning as for the QString class.
Definition at line 631 of file qwt_scldraw.cpp. References d_fieldwidth, d_fmt, and d_prec. Referenced by QwtScale::labelFormat(). |
|
||||||||||||||||||||||||
|
Find position, alignment and rotation of the label.
Definition at line 217 of file qwt_scldraw.cpp. References Bottom, d_hpad, d_labelAlignment, d_labelRotation, d_majLen, d_minAngle, d_orient, d_radius, d_scldiv, d_vpad, d_xCenter, d_xorg, d_yCenter, d_yorg, label(), Left, QwtScaleDiv::logScale(), M_PI, QwtScaleDiv::majStep(), qwtAbs, qwtInt, Right, Round, step_eps, Top, QwtDiMap::transform(), x(), and y(). Referenced by drawLabel(), and labelBoundingRect(). |
|
|
Definition at line 531 of file qwt_scldraw.cpp. References d_labelRotation. |
|
||||||||||||||||||||||||
|
Return the world matrix for painting the label.
Definition at line 320 of file qwt_scldraw.cpp. Referenced by drawLabel(), and labelBoundingRect(). |
|
|
Definition at line 1013 of file qwt_scldraw.cpp. References d_len. Referenced by QwtPlot::printScale(). |
|
|
Return the length of the major ticks
Definition at line 667 of file qwt_scldraw.cpp. References d_majLen. Referenced by QwtPlotLayoutData::init(), and QwtPlotLayout::minimumSizeHint(). |
|
||||||||||||
|
Definition at line 491 of file qwt_scldraw.cpp. References Bottom, d_len, d_majLen, d_orient, d_vpad, Left, maxLabelHeight(), Right, Round, and Top. Referenced by QwtScale::layoutScale(), maxLabelHeight(), and QwtDial::scaleContentsRect(). |
|
|
Definition at line 704 of file qwt_scldraw.cpp. References d_scldiv, labelBoundingRect(), QwtScaleDiv::logScale(), QwtScaleDiv::majCnt(), QwtScaleDiv::majMark(), QwtScaleDiv::majStep(), maxHeight(), qwtAbs, and step_eps. Referenced by maxHeight(), and minHeight(). |
|
|
Definition at line 676 of file qwt_scldraw.cpp. References d_scldiv, labelBoundingRect(), QwtScaleDiv::logScale(), QwtScaleDiv::majCnt(), QwtScaleDiv::majMark(), QwtScaleDiv::majStep(), maxWidth(), qwtAbs, and step_eps. Referenced by maxWidth(), minHeight(), and minWidth(). |
|
||||||||||||
|
Definition at line 465 of file qwt_scldraw.cpp. References Bottom, d_hpad, d_len, d_majLen, d_orient, d_vpad, Left, maxLabelWidth(), Right, Round, and Top. Referenced by QwtScale::layoutScale(), maxLabelWidth(), and QwtDial::scaleContentsRect(). |
|
||||||||||||||||
|
Determine the minimum border distance. This member function returns the minimum space needed to draw the mark labels at the scale's endpoints.
Definition at line 779 of file qwt_scldraw.cpp. References Bottom, d_orient, d_scldiv, labelBoundingRect(), Left, QwtScaleDiv::majCnt(), QwtScaleDiv::majMark(), Right, Round, and Top. Referenced by QwtSlider::layoutSlider(), QwtThermo::layoutThermo(), QwtScale::minBorderDist(), minHeight(), QwtSlider::minimumSizeHint(), and minWidth(). |
|
||||||||||||
|
Definition at line 900 of file qwt_scldraw.cpp. References Bottom, d_majLen, d_orient, d_scldiv, d_vpad, Left, QwtScaleDiv::majCnt(), maxLabelHeight(), maxLabelWidth(), minBorderDist(), QwtScaleDiv::minCnt(), minLabelDist(), Right, Round, and Top. Referenced by QwtScale::dimForLength(), QwtThermo::minimumSizeHint(), QwtSlider::minimumSizeHint(), QwtScale::minimumSizeHint(), QwtKnob::minimumSizeHint(), QwtDial::minimumSizeHint(), and QwtDial::sizeHint(). |
|
|
Determine the minimum distance between two labels, that is necessairy that the texts don't overlap.
Definition at line 820 of file qwt_scldraw.cpp. References d_labelRotation, d_orient, d_scldiv, labelBoundingRect(), Left, M_PI, QwtScaleDiv::majCnt(), QwtScaleDiv::majMark(), Right, and Round. Referenced by minHeight(), and minWidth(). |
|
||||||||||||
|
Definition at line 939 of file qwt_scldraw.cpp. References Bottom, d_hpad, d_majLen, d_orient, d_scldiv, d_vpad, Left, QwtScaleDiv::majCnt(), maxLabelWidth(), minBorderDist(), QwtScaleDiv::minCnt(), minLabelDist(), Right, Round, and Top. Referenced by QwtScale::dimForLength(), QwtThermo::minimumSizeHint(), QwtSlider::minimumSizeHint(), and QwtScale::minimumSizeHint(). |
|
|
Definition at line 56 of file qwt_scldraw.cpp. References d_options. Referenced by draw(), and QwtCompass::QwtCompass(). |
|
|
Definition at line 1019 of file qwt_scldraw.cpp. References d_orient, and Orientation. Referenced by QwtScale::dimForLength(), QwtScale::draw(), QwtScale::layoutScale(), QwtScale::minimumSizeHint(), QwtScale::position(), QwtThermo::sizePolicy(), and QwtScale::sizePolicy(). |
|
|
Definition at line 72 of file qwt_scldraw.h. Referenced by QwtSlider::rangeChange(), QwtSlider::scaleChange(), QwtThermo::setRange(), QwtScaleIf::setScale(), QwtScale::setScaleDiv(), QwtScaleIf::setScaleMaxMajor(), QwtScaleIf::setScaleMaxMinor(), and QwtPlot::sizeHint(). |
|
||||||||||||
|
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.
Definition at line 587 of file qwt_scldraw.cpp. References d_maxAngle, d_minAngle, qwtLim(), qwtMax, qwtMin, and QwtDiMap::setIntRange(). Referenced by QwtDial::drawScale(), and QwtKnob::setTotalAngle(). |
|
||||||||||||||||||||
|
Specify the geometry of the scale. The parameters xorigin, yorigin and length have different meanings, dependent on the orientation:
Definition at line 426 of file qwt_scldraw.cpp. References Bottom, d_len, d_maxAngle, d_minAngle, d_orient, d_radius, d_xCenter, d_xorg, d_yCenter, d_yorg, Left, Right, Round, QwtDiMap::setIntRange(), and Top. Referenced by QwtDial::drawScale(), QwtKnob::layoutKnob(), QwtScale::layoutScale(), QwtSlider::layoutSlider(), QwtThermo::layoutThermo(), QwtPlot::printScale(), QwtDial::QwtDial(), QwtKnob::QwtKnob(), QwtScale::QwtScale(), QwtScaleDraw(), QwtSlider::QwtSlider(), and QwtScale::setPosition(). |
|
|
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 Changing the alignment is often necessary for rotated labels.
Definition at line 555 of file qwt_scldraw.cpp. References d_labelAlignment. Referenced by QwtScale::setLabelAlignment(). |
|
||||||||||||||||
|
Set the number format for the major scale labels. Format character and precision have the same meaning as for the QString class.
Definition at line 616 of file qwt_scldraw.cpp. References d_fieldwidth, d_fmt, and d_prec. Referenced by QwtScale::setLabelFormat(). |
|
|
Rotate all labels.
Definition at line 522 of file qwt_scldraw.cpp. References d_labelRotation. Referenced by QwtScale::setLabelRotation(). |
|
|
Definition at line 51 of file qwt_scldraw.cpp. References d_options. Referenced by QwtCompass::QwtCompass(). |
|
||||||||||||||||||||||||||||
|
Adjust the range of the scale. If step == 0.0, the step width is calculated automatically dependent on the maximal number of scale ticks.
Definition at line 73 of file qwt_scldraw.cpp. References d_scldiv, QwtScaleDiv::hBound(), QwtScaleDiv::lBound(), QwtScaleDiv::logScale(), QwtScaleDiv::rebuild(), and QwtDiMap::setDblRange(). |
|
|
Change the scale division.
Definition at line 85 of file qwt_scldraw.cpp. References d_scldiv, QwtScaleDiv::hBound(), QwtScaleDiv::lBound(), QwtScaleDiv::logScale(), and QwtDiMap::setDblRange(). Referenced by QwtThermo::init(), QwtScaleDraw(), QwtScaleIf::QwtScaleIf(), QwtSlider::rangeChange(), QwtKnob::rangeChange(), QwtSlider::scaleChange(), QwtThermo::setRange(), QwtScaleIf::setScale(), QwtScale::setScaleDiv(), QwtScaleIf::setScaleMaxMajor(), QwtScaleIf::setScaleMaxMinor(), and QwtDial::updateScale(). |
|
||||||||||||||||
|
Set the length of the ticks Definition at line 641 of file qwt_scldraw.cpp. References d_majLen, d_medLen, and d_minLen. Referenced by QwtCompass::QwtCompass(). |
|
||||||||||||||||
|
Return the length of the ticks
Definition at line 655 of file qwt_scldraw.cpp. |
|
|
Definition at line 1002 of file qwt_scldraw.cpp. References d_xorg. Referenced by labelPlacement(), labelWorldMatrix(), and QwtPlot::printScale(). |
|
|
Definition at line 1008 of file qwt_scldraw.cpp. References d_yorg. Referenced by labelPlacement(), labelWorldMatrix(), and QwtPlot::printScale(). |
|
|
Definition at line 133 of file qwt_scldraw.h. Referenced by label(), labelBoundingRect(), labelFormat(), and setLabelFormat(). |
|
|
Definition at line 131 of file qwt_scldraw.h. Referenced by label(), labelFormat(), and setLabelFormat(). |
|
|
Definition at line 117 of file qwt_scldraw.h. Referenced by labelPlacement(), maxWidth(), and minWidth(). |
|
|
Definition at line 135 of file qwt_scldraw.h. Referenced by labelAlignment(), labelPlacement(), and setLabelAlignment(). |
|
|
Definition at line 136 of file qwt_scldraw.h. Referenced by labelPlacement(), labelRotation(), minLabelDist(), and setLabelRotation(). |
|
|
Definition at line 115 of file qwt_scldraw.h. Referenced by drawBackbone(), length(), maxHeight(), maxWidth(), and setGeometry(). |
|
|
Definition at line 121 of file qwt_scldraw.h. Referenced by draw(), labelPlacement(), majTickLength(), maxHeight(), maxWidth(), minHeight(), minWidth(), setTickLength(), and tickLength(). |
|
|
Definition at line 125 of file qwt_scldraw.h. Referenced by setAngleRange(), and setGeometry(). |
|
|
Definition at line 120 of file qwt_scldraw.h. Referenced by draw(), setTickLength(), and tickLength(). |
|
|
Definition at line 124 of file qwt_scldraw.h. Referenced by drawTick(), labelPlacement(), setAngleRange(), and setGeometry(). |
|
|
Definition at line 122 of file qwt_scldraw.h. Referenced by draw(), setTickLength(), and tickLength(). |
|
|
Definition at line 108 of file qwt_scldraw.h. Referenced by options(), and setOptions(). |
|
|
Definition at line 111 of file qwt_scldraw.h. Referenced by drawBackbone(), drawTick(), labelPlacement(), maxHeight(), maxWidth(), minBorderDist(), minHeight(), minLabelDist(), minWidth(), orientation(), and setGeometry(). |
|
|
Definition at line 132 of file qwt_scldraw.h. Referenced by label(), labelFormat(), and setLabelFormat(). |
|
|
Definition at line 129 of file qwt_scldraw.h. Referenced by drawTick(), labelPlacement(), and setGeometry(). |
|
|
Definition at line 110 of file qwt_scldraw.h. Referenced by draw(), labelPlacement(), maxLabelHeight(), maxLabelWidth(), minBorderDist(), minHeight(), minLabelDist(), minWidth(), and setScale(). |
|
|
Definition at line 118 of file qwt_scldraw.h. Referenced by labelPlacement(), maxHeight(), maxWidth(), minHeight(), and minWidth(). |
|
|
Definition at line 127 of file qwt_scldraw.h. Referenced by drawTick(), labelPlacement(), and setGeometry(). |
|
|
Definition at line 113 of file qwt_scldraw.h. Referenced by drawBackbone(), drawTick(), labelPlacement(), setGeometry(), and x(). |
|
|
Definition at line 128 of file qwt_scldraw.h. Referenced by drawTick(), labelPlacement(), and setGeometry(). |
|
|
Definition at line 114 of file qwt_scldraw.h. Referenced by drawBackbone(), drawTick(), labelPlacement(), setGeometry(), and y(). |
1.3.2