Qwt User's Guide 6.0.0
Public Types | Public Slots | Public Member Functions | Protected Member Functions

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

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

Protected Member Functions

virtual void drawLiquid (QPainter *, const QRect &) const
virtual void scaleChange ()
virtual void paintEvent (QPaintEvent *)
virtual void resizeEvent (QResizeEvent *)
virtual void changeEvent (QEvent *)
QwtScaleDrawscaleDraw ()
QRect pipeRect () const

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:
parentParent widget
QwtThermo::~QwtThermo ( ) [virtual]

Destructor.


Member Function Documentation

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
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:
eventEvent
QwtColorMap * QwtThermo::colorMap ( )
Returns:
Color map for the fill color
Warning:
The alarm threshold has no effect, when a color map has been assigned
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
void QwtThermo::drawLiquid ( QPainter *  painter,
const QRect &  pipeRect 
) const [protected, virtual]

Redraw the liquid in thermometer pipe.

Parameters:
painterPainter
pipeRectBounding 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:
eventPaint 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 QwtThermo::resizeEvent ( QResizeEvent *  event) [protected, virtual]

Qt resize event handler

Parameters:
eventResize event
void QwtThermo::scaleChange ( ) [protected, virtual]

Notify a scale change.

Reimplemented from QwtAbstractScale.

const QwtScaleDraw * QwtThermo::scaleDraw ( ) const
Returns:
the scale draw of the thermo
See also:
setScaleDraw()
QwtScaleDraw * QwtThermo::scaleDraw ( ) [protected]
Returns:
the scale draw of the thermo
See also:
setScaleDraw()
QwtThermo::ScalePos QwtThermo::scalePosition ( ) const

Return the scale position.

See also:
setScalePosition()
void QwtThermo::setAlarmBrush ( const QBrush &  brush)

Specify the liquid brush above the alarm threshold.

Changes the QPalette::Highlight brush of the palette.

Parameters:
brushNew 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:
tftrue (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:
levelAlarm threshold
See also:
alarmLevel()
Warning:
The alarm threshold has no effect, when a color map has been assigned
void QwtThermo::setBorderWidth ( int  width)

Set the border width of the pipe.

Parameters:
widthBorder width
See also:
borderWidth()
void QwtThermo::setColorMap ( QwtColorMap colorMap)

Assign a color map for the fill color.

Parameters:
colorMapColor 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:
brushNew brush.
See also:
fillBrush(), QWidget::setPalette()
void QwtThermo::setMaxValue ( double  maxValue)

Set the maximum value.

Parameters:
maxValueMaximum value
See also:
maxValue(), setMinValue(), setRange()
void QwtThermo::setMinValue ( double  minValue)

Set the minimum value.

Parameters:
minValueMinimum 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:
oorientation. Possible values are Qt::Horizontal and Qt::Vertical. The default value is Qt::Vertical.
sPosition 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:
widthWidth of the pipe
See also:
pipeWidth()
void QwtThermo::setRange ( double  minValue,
double  maxValue,
bool  logarithmic = false 
)

Set the range.

Parameters:
minValuevalue corresponding lower or left end of the thermometer
maxValuevalue corresponding to the upper or right end of the thermometer
logarithmiclogarithmic 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:
flagsRange flags
See also:
rangeFlags()
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:
scaleDrawScaleDraw object, that has to be created with new and will be deleted in ~QwtThermo or the next call of setScaleDraw().
void QwtThermo::setScalePosition ( ScalePos  scalePos)

Change the scale position (and thermometer orientation).

Parameters:
scalePosPosition 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:
spacingNumber of pixels
See also:
spacing();
void QwtThermo::setValue ( double  value) [virtual, slot]

Set the current value.

Parameters:
valueNew 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.