# QwtThermo Class Reference

Inheritance diagram for QwtThermo:

[legend]
Collaboration diagram for QwtThermo:

[legend]
List of all members.

## Detailed Description

The Thermometer Widget.

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

- a horizontal or vertical layout;
- a range;
- a scale;
- an alarm level.

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

Todo:
  Improve the support for a logarithmic range and/or scale.

Definition at line 69 of file qwt_thermo.h.

## Public Types

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

## Public Slots

void | setValue (double val)

## Public Member Functions

| QwtThermo (QWidget *parent=NULL)
virtual | ~QwtThermo ()
void | setOrientation (Qt::Orientation o, ScalePos s)
void | setScalePosition (ScalePos s)
ScalePos | scalePosition () const
void | setBorderWidth (int w)
int | borderWidth () const
void | setFillBrush (const QBrush &b)
const QBrush & | fillBrush () const
void | setFillColor (const QColor &c)
const QColor & | fillColor () const
void | setAlarmBrush (const QBrush &b)
const QBrush & | alarmBrush () const
void | setAlarmColor (const QColor &c)
const QColor & | alarmColor () const
void | setAlarmLevel (double v)
double | alarmLevel () const
void | setAlarmEnabled (bool tf)
bool | alarmEnabled () const
void | setPipeWidth (int w)
int | pipeWidth () 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)
void | setMargin (int m)
virtual QSize | sizeHint () const
virtual QSize | minimumSizeHint () const
void | setScaleDraw (QwtScaleDraw *)
const QwtScaleDraw * | scaleDraw () const

## Protected Member Functions

void | draw (QPainter *p, const QRect &update_rect)
void | drawThermo (QPainter *p)
void | layoutThermo (bool update=true)
virtual void | scaleChange ()
virtual void | fontChange (const QFont &oldFont)
virtual void | paintEvent (QPaintEvent *e)
virtual void | resizeEvent (QResizeEvent *e)
QwtScaleDraw * | scaleDraw ()

## Constructor & Destructor Documentation

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

Constructor

Parameters:

  | parent | Parent widget

Definition at line 64 of file qwt_thermo.cpp.

QwtThermo::~QwtThermo | ( |  | ) | `[virtual]`

| Destructor. Definition at line 105 of file qwt_thermo.cpp.

## Member Function Documentation

const QBrush & QwtThermo::alarmBrush | ( |  | ) | const

| Return the liquid brush above the alarm threshold. Definition at line 694 of file qwt_thermo.cpp.

const QColor & QwtThermo::alarmColor | ( |  | ) | const

| Return the liquid color above the alarm threshold. Definition at line 710 of file qwt_thermo.cpp.

bool QwtThermo::alarmEnabled | ( |  | ) | const

| Return if the alarm threshold is enabled or disabled. Definition at line 776 of file qwt_thermo.cpp.

double QwtThermo::alarmLevel | ( |  | ) | const

| Return the alarm threshold. Definition at line 724 of file qwt_thermo.cpp.

int QwtThermo::borderWidth | ( |  | ) | const

| Return the border width of the thermometer pipe. Definition at line 615 of file qwt_thermo.cpp.

void QwtThermo::draw | ( | QPainter * | p,
|  | const QRect & | update_rect
| ) | `[protected]`

| Draw the whole QwtThermo. Definition at line 183 of file qwt_thermo.cpp. References QwtAbstractScaleDraw::draw(), and scaleDraw(). Referenced by paintEvent().

void QwtThermo::drawThermo | ( | QPainter * | p | ) | `[protected]`

| Redraw the liquid in thermometer pipe. Definition at line 440 of file qwt_thermo.cpp.

const QBrush & QwtThermo::fillBrush | ( |  | ) | const

| Return the liquid brush. Definition at line 662 of file qwt_thermo.cpp.

const QColor & QwtThermo::fillColor | ( |  | ) | const

| Return the liquid color. Definition at line 678 of file qwt_thermo.cpp.

void QwtThermo::fontChange | ( | const QFont & | oldFont | ) | `[protected, virtual]`

| Notify a font change. Definition at line 426 of file qwt_thermo.cpp. References layoutThermo().

void QwtThermo::layoutThermo | ( | bool | update_geometry = `true` | ) | `[protected]`

Recalculate the QwtThermo geometry and layout based on the QwtThermo::rect() and the fonts.

Parameters:

  | update_geometry | notify the layout system and call update to redraw the scale

Definition at line 223 of file qwt_thermo.cpp.

References QwtScaleDraw::getBorderDistHint(), QwtScaleDraw::move(), scaleDraw(), QwtScaleDraw::setAlignment(), and QwtScaleDraw::setLength().

Referenced by fontChange(), resizeEvent(), scaleChange(), setBorderWidth(), setOrientation(), setPipeWidth(), and setRange().

double QwtThermo::maxValue | ( |  | ) | const

| Return the maximum value. Definition at line 117 of file qwt_thermo.cpp.

QSize QwtThermo::minimumSizeHint | ( |  | ) | const`[virtual]`

Return a minimum size hint.

Warning:
  The return value depends on the font and the scale.

See also:
  QwtThermo::sizeHint

Definition at line 795 of file qwt_thermo.cpp.

References QwtScaleDraw::extent(), QwtScaleDraw::minLength(), and scaleDraw().

Referenced by sizeHint().

double QwtThermo::minValue | ( |  | ) | const

| Return the minimum value. Definition at line 129 of file qwt_thermo.cpp.

void QwtThermo::paintEvent | ( | QPaintEvent * | e | ) | `[protected, virtual]`

| Qt paint event. Definition at line 166 of file qwt_thermo.cpp. References draw().

int QwtThermo::pipeWidth | ( |  | ) | const

| Return the width of the pipe. Definition at line 740 of file qwt_thermo.cpp.

void QwtThermo::resizeEvent | ( | QResizeEvent * | e | ) | `[protected, virtual]`

| Qt resize event handler. Definition at line 212 of file qwt_thermo.cpp. References layoutThermo().

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

| Notify a scale change. Reimplemented from QwtAbstractScale. Definition at line 433 of file qwt_thermo.cpp. References layoutThermo().

QwtThermo::ScalePos QwtThermo::scalePosition | ( |  | ) | const

| Return the scale position. Definition at line 420 of file qwt_thermo.cpp.

void QwtThermo::setAlarmBrush | ( | const QBrush & | brush | ) |

Specify the liquid brush above the alarm threshold.

Parameters:

  | brush | New brush. The default is solid white.

Definition at line 687 of file qwt_thermo.cpp.

void QwtThermo::setAlarmColor | ( | const QColor & | c | ) |

Specify the liquid color above the alarm threshold.

Parameters:

  | c | New color. The default is white.

Definition at line 703 of file qwt_thermo.cpp.

void QwtThermo::setAlarmEnabled | ( | bool | tf | ) |

Enable or disable the alarm threshold.

Parameters:

  | tf | true (disabled) or false (enabled)

Definition at line 769 of file qwt_thermo.cpp.

void QwtThermo::setAlarmLevel | ( | double | v | ) |

| Specify the alarm threshold. Definition at line 716 of file qwt_thermo.cpp.

void QwtThermo::setBorderWidth | ( | int | w | ) |

| Set the border width of the pipe. Definition at line 604 of file qwt_thermo.cpp. References layoutThermo().

void QwtThermo::setFillBrush | ( | const QBrush & | brush | ) |

Change the brush of the liquid.

Parameters:

  | brush | New brush. The default brush is solid black.

Definition at line 655 of file qwt_thermo.cpp.

void QwtThermo::setFillColor | ( | const QColor & | c | ) |

Change the color of the liquid.

Parameters:

  | c | New color. The default color is black.

Definition at line 671 of file qwt_thermo.cpp.

void QwtThermo::setMargin | ( | int | m | ) |

Specify the distance between the pipe's endpoints and the widget's border.

The margin is used to leave some space for the scale labels. If a large font is used, it is advisable to adjust the margins.

Parameters:

  | m | New Margin. The default values are 10 for horizontal orientation and 20 for vertical orientation.

Warning:
  The margin has no effect if the scale is disabled.

  This function is a NOOP because margins are determined automatically.

Definition at line 760 of file qwt_thermo.cpp.

void QwtThermo::setMaxValue | ( | double | v | ) |

| Set the maximum value. Definition at line 111 of file qwt_thermo.cpp. References setRange().

void QwtThermo::setMinValue | ( | double | v | ) |

| Set the minimum value. Definition at line 123 of file qwt_thermo.cpp. References 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:
  QwtThermo::setScalePosition()

Definition at line 346 of file qwt_thermo.cpp.

References layoutThermo().

Referenced by setScalePosition().

void QwtThermo::setPipeWidth | ( | int | w | ) |

| Change the width of the pipe. Definition at line 730 of file qwt_thermo.cpp. References layoutThermo().

void QwtThermo::setRange | ( | double | vmin,
|  | double | vmax,
|  | bool | logarithmic = `false`
| ) |

Set the range.

Parameters:

  | vmin | value corresponding lower or left end of the thermometer
  | vmax | value corresponding to the upper or right end of the thermometer
  | logarithmic | logarithmic mapping, true or false

Definition at line 626 of file qwt_thermo.cpp.

References QwtAbstractScale::autoScale(), layoutThermo(), QwtAbstractScale::rescale(), QwtAbstractScale::scaleEngine(), and QwtAbstractScale::setScaleEngine().

Referenced by setMaxValue(), and setMinValue().

void QwtThermo::setScalePosition | ( | ScalePos | s | ) |

Change the scale position (and thermometer orientation).

Parameters:

  | s | 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:
  QwtThermo::setOrientation()

Definition at line 409 of file qwt_thermo.cpp.

References setOrientation().

void QwtThermo::setValue | ( | double | val | ) | `[slot]`

| Set the current value. Definition at line 135 of file qwt_thermo.cpp.

QSize QwtThermo::sizeHint | ( |  | ) | const`[virtual]`

Returns:
  the minimum size hint

See also:
  QwtThermo::minimumSizeHint

Definition at line 785 of file qwt_thermo.cpp.

References minimumSizeHint().

double QwtThermo::value | ( |  | ) | const

| Return the value. Definition at line 145 of file qwt_thermo.cpp.