qwtscaledraw(3)
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, intmaxMinIntv, 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, unsignedint 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, unsignedint &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 &, intalignment, 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 digitsfieldwidth 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. Anglesexceeding 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::LeftThe 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::AlignTopQwtScaleDraw::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.