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::setLabelFlags().
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 41 of file qwt_scale_draw.h.
Public Types | |
enum | Orientation { Bottom, Top, Left, Right, Round } |
enum | Option { None = 0, Backbone = 1 } |
Public Member Functions | |
QwtScaleDraw () | |
QwtScaleDraw (const QwtScaleDraw &) | |
virtual | ~QwtScaleDraw () |
QwtScaleDraw & | operator= (const QwtScaleDraw &) |
void | setTransformation (const QwtScaleTransformation &) |
void | setScaleDiv (const QwtScaleDiv &s) |
const QwtScaleMap & | map () const |
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 | setLabelFlags (int flags) |
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 &, const QFont &) const |
int | maxHeight (const QPen &, const QFont &) const |
void | minBorderDist (const QFont &, int &start, int &end) const |
int | minLabelDist (const QFont &) const |
int | minHeight (const QPen &, const QFont &) const |
int | minWidth (const QPen &, const QFont &) const |
void | labelFormat (char &f, int &prec, int &fieldwidth) const |
int | labelFlags () const |
double | labelRotation () const |
void | tickLength (unsigned int &minLen, unsigned int &medLen, unsigned int &majLen) const |
unsigned int | majTickLength () const |
virtual void | draw (QPainter *, const QColorGroup &) 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 QFont &) const |
virtual int | maxLabelWidth (const QFont &) const |
QRect | labelBoundingRect (const QFont &, 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 |
|
Orientation/Position of the scale draw
Definition at line 48 of file qwt_scale_draw.h. |
|
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 101 of file qwt_scale_draw.cpp. References setGeometry(). |
|
Destructor.
Definition at line 114 of file qwt_scale_draw.cpp. |
|
Draw the scale.
Definition at line 179 of file qwt_scale_draw.cpp. References drawBackbone(), drawLabel(), drawTick(), options(), tickLength(), and QwtScaleDiv::ticks(). Referenced by QwtThermo::draw(), QwtSlider::draw(), QwtScaleWidget::draw(), QwtKnob::draw(), QwtScaleWidget::drawTitle(), and QwtPlot::printScale(). |
|
Draws the baseline of the scale.
Definition at line 449 of file qwt_scale_draw.cpp. References QwtPainter::drawLine(). Referenced by draw(). |
|
Draws the number label for a major scale tick.
Definition at line 283 of file qwt_scale_draw.cpp. References QwtPainter::drawText(), label(), labelPlacement(), and labelWorldMatrix(). Referenced by draw(). |
|
Draws a single tick.
Definition at line 233 of file qwt_scale_draw.cpp. References QwtPainter::drawLine(), and QwtScaleMap::transform(). Referenced by draw(). |
|
Convert a value into its representing label using the labelFormat.
Reimplemented in QwtDialScaleDraw. Definition at line 1140 of file qwt_scale_draw.cpp. Referenced by drawLabel(), QwtDialScaleDraw::label(), labelBoundingRect(), and labelPlacement(). |
|
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 864 of file qwt_scale_draw.cpp. References label(), labelPlacement(), and labelWorldMatrix(). Referenced by maxLabelHeight(), maxLabelWidth(), minBorderDist(), and minLabelDist(). |
|
Definition at line 669 of file qwt_scale_draw.cpp. |
|
Return the number format for the major scale labels. Format character, precision and fieldwidth have the same meaning as for sprintf().
Definition at line 760 of file qwt_scale_draw.cpp. Referenced by QwtScaleWidget::labelFormat(). |
|
Find position, flags and rotation of the label.
Definition at line 315 of file qwt_scale_draw.cpp. References label(), QwtScaleMap::transform(), x(), and y(). Referenced by drawLabel(), and labelBoundingRect(). |
|
Definition at line 636 of file qwt_scale_draw.cpp. |
|
Return the world matrix for painting the label.
Definition at line 410 of file qwt_scale_draw.cpp. Referenced by drawLabel(), and labelBoundingRect(). |
|
Return length.
Definition at line 1166 of file qwt_scale_draw.cpp. Referenced by QwtPlot::printScale(). |
|
Return the length of the major ticks
Definition at line 808 of file qwt_scale_draw.cpp. Referenced by QwtPlotLayout::minimumSizeHint(). |
|
Definition at line 590 of file qwt_scale_draw.cpp. References maxLabelHeight(). Referenced by QwtScaleWidget::layoutScale(), and maxLabelHeight(). |
|
Definition at line 840 of file qwt_scale_draw.cpp. References labelBoundingRect(), and maxHeight(). Referenced by maxHeight(), and minHeight(). |
|
Definition at line 817 of file qwt_scale_draw.cpp. References labelBoundingRect(), and maxWidth(). Referenced by maxWidth(), minHeight(), and minWidth(). |
|
Definition at line 562 of file qwt_scale_draw.cpp. References maxLabelWidth(). Referenced by QwtScaleWidget::layoutScale(), and maxLabelWidth(). |
|
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 916 of file qwt_scale_draw.cpp. References labelBoundingRect(). Referenced by QwtSlider::layoutSlider(), QwtThermo::layoutThermo(), QwtScaleWidget::minBorderDist(), minHeight(), QwtSlider::minimumSizeHint(), and minWidth(). |
|
Definition at line 1043 of file qwt_scale_draw.cpp. References maxLabelHeight(), maxLabelWidth(), minBorderDist(), and minLabelDist(). Referenced by QwtScaleWidget::dimForLength(), QwtThermo::minimumSizeHint(), QwtSlider::minimumSizeHint(), QwtScaleWidget::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 962 of file qwt_scale_draw.cpp. References labelBoundingRect(). Referenced by minHeight(), and minWidth(). |
|
Definition at line 1089 of file qwt_scale_draw.cpp. References maxLabelWidth(), minBorderDist(), and minLabelDist(). Referenced by QwtScaleWidget::dimForLength(), QwtThermo::minimumSizeHint(), QwtSlider::minimumSizeHint(), and QwtScaleWidget::minimumSizeHint(). |
|
Definition at line 134 of file qwt_scale_draw.cpp. Referenced by draw(), setOptions(), and QwtDial::setScaleOptions(). |
|
Return scale orientation.
Definition at line 1172 of file qwt_scale_draw.cpp. Referenced by QwtScaleWidget::position(). |
|
Definition at line 161 of file qwt_scale_draw.cpp. Referenced by 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 692 of file qwt_scale_draw.cpp. References qwtLim(), and QwtScaleMap::setPaintInterval(). Referenced by QwtKnob::setTotalAngle(). |
|
Specify the geometry of the scale. The parameters xorigin, yorigin and length have different meanings, dependent on the orientation:
Definition at line 523 of file qwt_scale_draw.cpp. References QwtScaleMap::setPaintInterval(). Referenced by QwtScaleWidget::layoutScale(), QwtSlider::layoutSlider(), QwtThermo::layoutThermo(), QwtPlot::printScale(), QwtDial::QwtDial(), QwtKnob::QwtKnob(), QwtScaleDraw(), and QwtSlider::QwtSlider(). |
|
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 flags 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 660 of file qwt_scale_draw.cpp. Referenced by QwtScaleWidget::setLabelFlags(). |
|
Set the number format for the major scale labels. Format character, precision and fieldwidth have the same meaning as for sprintf().
Definition at line 727 of file qwt_scale_draw.cpp. Referenced by QwtScaleWidget::setLabelFormat(). |
|
Rotate all labels.
Definition at line 627 of file qwt_scale_draw.cpp. Referenced by QwtScaleWidget::setLabelRotation(). |
|
Set the margins of the ticks
Definition at line 773 of file qwt_scale_draw.cpp. |
|
Change the scale draw options.
Definition at line 126 of file qwt_scale_draw.cpp. References options(). Referenced by QwtDial::setScaleOptions(). |
|
Change the scale division.
Definition at line 143 of file qwt_scale_draw.cpp. References map(), and QwtScaleMap::setScaleInterval(). Referenced by QwtScaleWidget::setScaleDiv(). |
|
Set the length of the ticks Definition at line 782 of file qwt_scale_draw.cpp. Referenced by QwtDial::setScaleOptions(), and QwtDial::setScaleTicks(). |
|
Return the length of the ticks
Definition at line 796 of file qwt_scale_draw.cpp. Referenced by draw(). |
|
Return x origin.
Definition at line 1154 of file qwt_scale_draw.cpp. Referenced by QwtKnob::drawMarker(), labelPlacement(), labelWorldMatrix(), and QwtPlot::printScale(). |
|
Return y origin.
Definition at line 1160 of file qwt_scale_draw.cpp. Referenced by QwtKnob::drawMarker(), labelPlacement(), labelWorldMatrix(), and QwtPlot::printScale(). |