Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

QwtScaleDraw Class Reference

A class for drawing scales. More...

#include <qwt_scldraw.h>

Inheritance diagram for QwtScaleDraw::

QwtDiMap List of all members.

Public Types

enum  Orientation {
  Bottom, Top, Left, Right,
  Round
}

Public Methods

 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 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)
const QwtScaleDivscaleDiv () const
QRect maxBoundingRect (const QFontMetrics &fm) const
int maxWidth (const QPen &pen, const QFontMetrics &fm) const
int maxHeight (const QPen &pen, const QFontMetrics &fm) const
int minBorderDist (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
virtual void draw (QPainter *p) const
virtual QString label (double) const

Protected Methods

virtual int maxLabelWidth (const QFontMetrics &) const

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

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.


Member Enumeration Documentation

enum QwtScaleDraw::Orientation
 

Orientation/Position of the scale draw

See also:
QwtScaleDraw::setGeometry


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.

QwtScaleDraw::~QwtScaleDraw   [virtual]
 

Destructor.


Member Function Documentation

void QwtScaleDraw::draw QPainter *    p const [virtual]
 

Draw the scale.

Parameters:
p  the painter

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

void QwtScaleDraw::labelFormat char &    f,
int &    prec,
int &    fieldwidth
const
 

Format character and precision have the same meaning as for the QString class.

Return values:
f  format character 'g', 'e', or 'f'
prec  precision(f), or siginificance(g)
Returns:
the number format for the major scale labels
See also:
QString::sprintf in the Qt manual

int QwtScaleDraw::length   const
 

Returns:
length.

QRect QwtScaleDraw::maxBoundingRect const QFontMetrics &    fm const
 

The bounding rectangle is not very exact for round scales with strange angle ranges.

Parameters:
p  painter
Returns:
the maximum bounding rectangle of the scale for a specified painter

int QwtScaleDraw::maxHeight const QPen &    pen,
const QFontMetrics &    fm
const
 

Parameters:
pen  pen
fm  font metrics
Returns:
the maximum height of the scale

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

Parameters:
fm  QFontMetrics
Returns:
the maximum width of a label

int QwtScaleDraw::maxWidth const QPen &    pen,
const QFontMetrics &    fm
const
 

Parameters:
pen  pen
fm  font metrics
Returns:
the maximum width of the scale

int QwtScaleDraw::minBorderDist const QFontMetrics &    fm 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
Returns:
minimum border distance

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

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

QwtScaleDraw::Orientation QwtScaleDraw::orientation   const
 

Returns:
scale orientation.

const QwtScaleDiv& QwtScaleDraw::scaleDiv   const
 

Returns:
scale division

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

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

void QwtScaleDraw::setLabelFormat char    f,
int    prec,
int    fieldwidth = 0
 

Set the number format for the major scale labels.

Format character and precision have the same meaning as for the QString class.

Parameters:
f  format character, 'g', 'e' or 'f'
prec  precision(f) or significance(g)
fieldwidth  fieldwidth
See also:
QString::sprintf in the Qt manual

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
step  step size (default : 0.0)
logscale  logarithmic scale (default : 0)

void QwtScaleDraw::setScale const QwtScaleDiv   s
 

Change the scale division.

Parameters:
sd  new scale division

int QwtScaleDraw::x   const
 

Returns:
x origin.

int QwtScaleDraw::y   const
 

Returns:
y origin.


Generated on Tue May 28 15:31:01 2002 for Qwt User's Guide by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001