QwtThermo(3)

NAME
QwtThermo -

SYNOPSIS

#include <qwt_thermo.h>

Inherits QwtAbstractScale.

  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 ()
const QBrush & alarmBrush () const
bool alarmEnabled () const
double alarmLevel () const
int borderWidth () const
QwtColorMap * colorMap ()
const QwtColorMap * colorMap () const
const QBrush & fillBrush () const
double maxValue () const
virtual QSize minimumSizeHint () const
double minValue () const
int pipeWidth () const
QwtInterval::BorderFlags rangeFlags () const
const QwtScaleDraw * scaleDraw () const
ScalePos scalePosition () const
void setAlarmBrush (const QBrush &b)
void setAlarmEnabled (bool tf)
void setAlarmLevel (double v)
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 setScaleDraw (QwtScaleDraw *)
void setScalePosition (ScalePos s)
void setSpacing (int)
virtual QSize sizeHint () const
int spacing () const
double value () const

  Protected Member Functions
virtual void changeEvent (QEvent *)
virtual void drawLiquid (QPainter *, const QRect &) const
virtual void paintEvent (QPaintEvent *)
QRect pipeRect () const
virtual void resizeEvent (QResizeEvent *)
virtual void scaleChange ()
QwtScaleDraw * scaleDraw ()

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.

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:

•   QPalette::Base Background of the pipe

•   QPalette::ButtonText Fill brush below the alarm level

•   QPalette::Highlight Fill brush for the values above the alarm level

•   QPalette::WindowText For the axis of the scale

•   QPalette::Text For the labels of the scale

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

  enum QwtThermo::ScalePos
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

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:
    event Event

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

  QSize QwtThermo::minimumSizeHint () const [virtual]

Return a minimum size hint. Warning:
    The return value depends on the font and the scale.

See also:
    sizeHint()

  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 QwtThermo::resizeEvent (QResizeEvent *event) [protected], [virtual]
Qt resize event handler

Parameters:
    event Resize event

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

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 (doublelevel)
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 QwtThermo::setBorderWidth (intwidth)
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 (doublemaxValue)
Set the maximum value.

Parameters:
    maxValue Maximum value

See also:
    maxValue(), setMinValue(), setRange()

  void QwtThermo::setMinValue (doubleminValue)
Set the minimum value.

Parameters:
    minValue Minimum value

See also:
    minValue(), setMaxValue(), setRange()

  void QwtThermo::setOrientation (Qt::Orientationo, ScalePoss)

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 (intwidth)
Change the width of the pipe.

Parameters:
    width Width of the pipe

See also:
    pipeWidth()

  void QwtThermo::setRange (doubleminValue, doublemaxValue, boollogarithmic = 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::BorderFlagsflags)

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 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 QwtThermo::setScalePosition (ScalePosscalePos)

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

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

Author

Generated automatically by Doxygen for Qwt User's Guide from the source code.