QwtThermo Class Reference

The Thermometer Widget. More...

#include <qwt_thermo.h>

Inheritance diagram for QwtThermo:

Inheritance graph
[legend]

List of all members.

Public Types

enum  ScalePos {
  NoScale,
  LeftScale,
  RightScale,
  TopScale,
  BottomScale
}

Public Slots

virtual void setValue (double val)

Public Member Functions

const QBrush & alarmBrush () const
bool alarmEnabled () const
double alarmLevel () const
bool autoScale () const
int borderWidth () const
const QwtColorMapcolorMap () const
QwtColorMapcolorMap ()
const QBrush & fillBrush () const
double maxValue () const
virtual QSize minimumSizeHint () const
double minValue () const
int pipeWidth () const
 QwtThermo (QWidget *parent=NULL)
QwtInterval::BorderFlags rangeFlags () const
const QwtScaleDrawscaleDraw () const
QwtScaleEnginescaleEngine ()
const QwtScaleEnginescaleEngine () const
const QwtScaleMapscaleMap () const
int scaleMaxMajor () const
int scaleMaxMinor () const
ScalePos scalePosition () const
void setAlarmBrush (const QBrush &b)
void setAlarmEnabled (bool tf)
void setAlarmLevel (double v)
void setAutoScale ()
void setBorderWidth (int w)
void setColorMap (QwtColorMap *)
void setFillBrush (const QBrush &b)
void setMaxValue (double v)
void setMinValue (double v)
void setOrientation (Qt::Orientation, ScalePos)
void setPipeWidth (int w)
void setRange (double vmin, double vmax, bool lg=false)
void setRangeFlags (QwtInterval::BorderFlags)
void setScale (const QwtScaleDiv &)
void setScale (const QwtInterval &, double step=0.0)
void setScale (double vmin, double vmax, double step=0.0)
void setScaleDraw (QwtScaleDraw *)
void setScaleEngine (QwtScaleEngine *)
void setScaleMaxMajor (int ticks)
void setScaleMaxMinor (int ticks)
void setScalePosition (ScalePos s)
void setSpacing (int)
virtual QSize sizeHint () const
int spacing () const
double value () const
virtual ~QwtThermo ()

Protected Member Functions

QwtAbstractScaleDrawabstractScaleDraw ()
const QwtAbstractScaleDrawabstractScaleDraw () const
virtual void changeEvent (QEvent *)
virtual void drawLiquid (QPainter *, const QRect &) const
virtual void paintEvent (QPaintEvent *)
QRect pipeRect () const
void rescale (double vmin, double vmax, double step=0.0)
virtual void resizeEvent (QResizeEvent *)
virtual void scaleChange ()
QwtScaleDrawscaleDraw ()
void setAbstractScaleDraw (QwtAbstractScaleDraw *)


Detailed Description

The Thermometer Widget.

QwtThermo is a widget which displays a value in an interval. It supports:

sysinfo.png

The fill colors might be calculated from an optional color map If no color map has been assigned QwtThermo uses the following colors/brushes from the widget palette:

By default, the scale and range run over the same interval of values. QwtAbstractScale::setScale() changes the interval of the scale and allows easy conversion between physical units.

The example shows how to make the scale indicate in degrees Fahrenheit and to set the value in degrees Kelvin:

#include <qapplication.h>
#include <qwt_thermo.h>

double Kelvin2Fahrenheit(double kelvin)
{
    // see http://en.wikipedia.org/wiki/Kelvin
    return 1.8*kelvin - 459.67;
}

int main(int argc, char **argv)
{
    const double minKelvin = 0.0;
    const double maxKelvin = 500.0;

    QApplication a(argc, argv);
    QwtThermo t;
    t.setRange(minKelvin, maxKelvin);
    t.setScale(Kelvin2Fahrenheit(minKelvin), Kelvin2Fahrenheit(maxKelvin));
    // set the value in Kelvin but the scale displays in Fahrenheit
    // 273.15 Kelvin = 0 Celsius = 32 Fahrenheit
    t.setValue(273.15);
    a.setMainWidget(&t);
    t.show();
    return a.exec();
}

Member Enumeration Documentation

Scale position. QwtThermo tries to enforce valid combinations of its orientation and scale position:

  • Qt::Horizonal combines with NoScale, TopScale and BottomScale
  • Qt::Vertical combines with NoScale, LeftScale and RightScale

See also:
setOrientation(), setScalePosition()
Enumerator:
NoScale  No scale.
LeftScale  The scale is left of the pipe.
RightScale  The scale is right of the pipe.
TopScale  The scale is above the pipe.
BottomScale  The scale is below the pipe.


Constructor & Destructor Documentation

QwtThermo::QwtThermo ( QWidget *  parent = NULL  )  [explicit]

Constructor

Parameters:
parent Parent widget

QwtThermo::~QwtThermo (  )  [virtual]

Destructor.


Member Function Documentation

QwtAbstractScaleDraw * QwtAbstractScale::abstractScaleDraw (  )  [protected, inherited]

Returns:
Scale draw
See also:
setAbstractScaleDraw()

const QwtAbstractScaleDraw * QwtAbstractScale::abstractScaleDraw (  )  const [protected, inherited]

Returns:
Scale draw
See also:
setAbstractScaleDraw()

const QBrush & QwtThermo::alarmBrush (  )  const

Return the liquid brush ( QPalette::Highlight ) above the alarm threshold.

See also:
setAlarmBrush(), QWidget::palette()
Warning:
The alarm threshold has no effect, when a color map has been assigned

bool QwtThermo::alarmEnabled (  )  const

Returns:
True, when the alarm threshold is enabled.
Warning:
The alarm threshold has no effect, when a color map has been assigned

double QwtThermo::alarmLevel (  )  const

Return the alarm threshold.

See also:
setAlarmLevel()
Warning:
The alarm threshold has no effect, when a color map has been assigned

bool QwtAbstractScale::autoScale (  )  const [inherited]

Returns:
true if autoscaling is enabled

int QwtThermo::borderWidth (  )  const

Return the border width of the thermometer pipe.

See also:
setBorderWidth()

void QwtThermo::changeEvent ( QEvent *  event  )  [protected, virtual]

Qt change event handler

Parameters:
event Event

const QwtColorMap * QwtThermo::colorMap (  )  const

Returns:
Color map for the fill color
Warning:
The alarm threshold has no effect, when a color map has been assigned

QwtColorMap * QwtThermo::colorMap (  ) 

Returns:
Color map for the fill color
Warning:
The alarm threshold has no effect, when a color map has been assigned

void QwtThermo::drawLiquid ( QPainter *  painter,
const QRect &  pipeRect 
) const [protected, virtual]

Redraw the liquid in thermometer pipe.

Parameters:
painter Painter
pipeRect Bounding rectangle of the pipe without borders

const QBrush & QwtThermo::fillBrush (  )  const

Return the liquid ( QPalette::ButtonText ) brush.

See also:
setFillBrush(), QWidget::palette()

double QwtThermo::maxValue (  )  const

Return the maximum value.

QSize QwtThermo::minimumSizeHint (  )  const [virtual]

Return a minimum size hint.

Warning:
The return value depends on the font and the scale.
See also:
sizeHint()

double QwtThermo::minValue (  )  const

Return the minimum value.

void QwtThermo::paintEvent ( QPaintEvent *  event  )  [protected, virtual]

Qt paint event.

Parameters:
event Paint event

QRect QwtThermo::pipeRect (  )  const [protected]

Returns:
Bounding rectangle of the pipe ( without borders ) in widget coordinates

int QwtThermo::pipeWidth (  )  const

Return the width of the pipe.

See also:
setPipeWidth()

QwtInterval::BorderFlags QwtThermo::rangeFlags (  )  const

Returns:
Range flags
See also:
setRangeFlags()

void QwtAbstractScale::rescale ( double  vmin,
double  vmax,
double  stepSize = 0.0 
) [protected, inherited]

Recalculate the scale division and update the scale draw.

Parameters:
vmin Lower limit of the scale interval
vmax Upper limit of the scale interval
stepSize Major step size
See also:
scaleChange()

void QwtThermo::resizeEvent ( QResizeEvent *  event  )  [protected, virtual]

Qt resize event handler

Parameters:
event Resize event

void QwtThermo::scaleChange (  )  [protected, virtual]

Notify a scale change.

Reimplemented from QwtAbstractScale.

QwtScaleDraw * QwtThermo::scaleDraw (  )  [protected]

Returns:
the scale draw of the thermo
See also:
setScaleDraw()

const QwtScaleDraw * QwtThermo::scaleDraw (  )  const

Returns:
the scale draw of the thermo
See also:
setScaleDraw()

QwtScaleEngine * QwtAbstractScale::scaleEngine (  )  [inherited]

Returns:
Scale engine
See also:
setScaleEngine()

const QwtScaleEngine * QwtAbstractScale::scaleEngine (  )  const [inherited]

Returns:
Scale engine
See also:
setScaleEngine()

const QwtScaleMap & QwtAbstractScale::scaleMap (  )  const [inherited]

int QwtAbstractScale::scaleMaxMajor (  )  const [inherited]

Returns:
Max. number of major tick intervals The default value is 5.

int QwtAbstractScale::scaleMaxMinor (  )  const [inherited]

Returns:
Max. number of minor tick intervals The default value is 3.

QwtThermo::ScalePos QwtThermo::scalePosition (  )  const

Return the scale position.

See also:
setScalePosition()

void QwtAbstractScale::setAbstractScaleDraw ( QwtAbstractScaleDraw scaleDraw  )  [protected, inherited]

Set a scale draw.

scaleDraw has to be created with new and will be deleted in ~QwtAbstractScale or the next call of setAbstractScaleDraw.

void QwtThermo::setAlarmBrush ( const QBrush &  brush  ) 

Specify the liquid brush above the alarm threshold.

Changes the QPalette::Highlight brush of the palette.

Parameters:
brush New brush.
See also:
alarmBrush(), QWidget::setPalette()
Warning:
The alarm threshold has no effect, when a color map has been assigned

void QwtThermo::setAlarmEnabled ( bool  tf  ) 

Enable or disable the alarm threshold.

Parameters:
tf true (disabled) or false (enabled)
Warning:
The alarm threshold has no effect, when a color map has been assigned

void QwtThermo::setAlarmLevel ( double  level  ) 

Specify the alarm threshold.

Parameters:
level Alarm threshold
See also:
alarmLevel()
Warning:
The alarm threshold has no effect, when a color map has been assigned

void QwtAbstractScale::setAutoScale (  )  [inherited]

Advise the widget to control the scale range internally.

Autoscaling is on by default.

See also:
setScale(), autoScale()

void QwtThermo::setBorderWidth ( int  width  ) 

Set the border width of the pipe.

Parameters:
width Border width
See also:
borderWidth()

void QwtThermo::setColorMap ( QwtColorMap colorMap  ) 

Assign a color map for the fill color.

Parameters:
colorMap Color map
Warning:
The alarm threshold has no effect, when a color map has been assigned

void QwtThermo::setFillBrush ( const QBrush &  brush  ) 

Change the brush of the liquid.

Changes the QPalette::ButtonText brush of the palette.

Parameters:
brush New brush.
See also:
fillBrush(), QWidget::setPalette()

void QwtThermo::setMaxValue ( double  maxValue  ) 

Set the maximum value.

Parameters:
maxValue Maximum value
See also:
maxValue(), setMinValue(), setRange()

void QwtThermo::setMinValue ( double  minValue  ) 

Set the minimum value.

Parameters:
minValue Minimum value
See also:
minValue(), setMaxValue(), setRange()

void QwtThermo::setOrientation ( Qt::Orientation  o,
ScalePos  s 
)

Set the thermometer orientation and the scale position.

The scale position NoScale disables the scale.

Parameters:
o orientation. Possible values are Qt::Horizontal and Qt::Vertical. The default value is Qt::Vertical.
s Position of the scale. The default value is NoScale.
A valid combination of scale position and orientation is enforced:
  • a horizontal thermometer can have the scale positions TopScale, BottomScale or NoScale;
  • a vertical thermometer can have the scale positions LeftScale, RightScale or NoScale;
  • an invalid scale position will default to NoScale.

See also:
setScalePosition()

void QwtThermo::setPipeWidth ( int  width  ) 

Change the width of the pipe.

Parameters:
width Width of the pipe
See also:
pipeWidth()

void QwtThermo::setRange ( double  minValue,
double  maxValue,
bool  logarithmic = false 
)

Set the range.

Parameters:
minValue value corresponding lower or left end of the thermometer
maxValue value corresponding to the upper or right end of the thermometer
logarithmic logarithmic mapping, true or false

void QwtThermo::setRangeFlags ( QwtInterval::BorderFlags  flags  ) 

Exclude/Include min/max values.

According to the flags minValue() and maxValue() are included/excluded from the pipe. In case of an excluded value the corresponding tick is painted 1 pixel off of the pipeRect().

F.e. when a minimum of 0.0 has to be displayed as an empty pipe the minValue() needs to be excluded.

Parameters:
flags Range flags
See also:
rangeFlags()

void QwtAbstractScale::setScale ( const QwtScaleDiv scaleDiv  )  [inherited]

Specify a scale.

Disable autoscaling and define a scale by a scale division

Parameters:
scaleDiv Scale division
See also:
setAutoScale()

void QwtAbstractScale::setScale ( const QwtInterval interval,
double  stepSize = 0.0 
) [inherited]

Specify a scale.

Disable autoscaling and define a scale by an interval and a step size

Parameters:
interval Interval
stepSize major step size
See also:
setAutoScale()

void QwtAbstractScale::setScale ( double  vmin,
double  vmax,
double  stepSize = 0.0 
) [inherited]

Specify a scale.

Disable autoscaling and define a scale by an interval and a step size

Parameters:
vmin lower limit of the scale interval
vmax upper limit of the scale interval
stepSize major step size
See also:
setAutoScale()

void QwtThermo::setScaleDraw ( QwtScaleDraw scaleDraw  ) 

Set a scale draw.

For changing the labels of the scales, it is necessary to derive from QwtScaleDraw and overload QwtScaleDraw::label().

Parameters:
scaleDraw ScaleDraw object, that has to be created with new and will be deleted in ~QwtThermo or the next call of setScaleDraw().

void QwtAbstractScale::setScaleEngine ( QwtScaleEngine scaleEngine  )  [inherited]

Set a scale engine.

The scale engine is responsible for calculating the scale division, and in case of auto scaling how to align the scale.

scaleEngine has to be created with new and will be deleted in ~QwtAbstractScale or the next call of setScaleEngine.

void QwtAbstractScale::setScaleMaxMajor ( int  ticks  )  [inherited]

Set the maximum number of major tick intervals.

The scale's major ticks are calculated automatically such that the number of major intervals does not exceed ticks. The default value is 5.

Parameters:
ticks maximal number of major ticks.
See also:
QwtAbstractScaleDraw

void QwtAbstractScale::setScaleMaxMinor ( int  ticks  )  [inherited]

Set the maximum number of minor tick intervals.

The scale's minor ticks are calculated automatically such that the number of minor intervals does not exceed ticks. The default value is 3.

Parameters:
ticks 
See also:
QwtAbstractScaleDraw

void QwtThermo::setScalePosition ( ScalePos  scalePos  ) 

Change the scale position (and thermometer orientation).

Parameters:
scalePos Position of the scale.
A valid combination of scale position and orientation is enforced:
  • if the new scale position is LeftScale or RightScale, the scale orientation will become Qt::Vertical;
  • if the new scale position is BottomScale or TopScale, the scale orientation will become Qt::Horizontal;
  • if the new scale position is NoScale, the scale orientation will not change.

See also:
setOrientation(), scalePosition()

void QwtThermo::setSpacing ( int  spacing  ) 

Change the spacing between pipe and scale.

A spacing of 0 means, that the backbone of the scale is below the pipe.

The default setting is 3 pixels.

Parameters:
spacing Number of pixels
See also:
spacing();

void QwtThermo::setValue ( double  value  )  [virtual, slot]

Set the current value.

Parameters:
value New Value
See also:
value()

QSize QwtThermo::sizeHint (  )  const [virtual]

Returns:
the minimum size hint
See also:
minimumSizeHint()

int QwtThermo::spacing (  )  const

Returns:
Number of pixels between pipe and scale
See also:
setSpacing()

double QwtThermo::value (  )  const

Return the value.


Generated on Wed Jan 11 15:23:05 2012 for Qwt User's Guide by  doxygen 1.5.9