Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

QwtThermo Class Reference

Inheritance diagram for QwtThermo:

Inheritance graph
[legend]
Collaboration diagram for QwtThermo:

Collaboration graph
[legend]
List of all members.

Detailed Description

The Thermometer Widget.

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

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 64 of file qwt_thermo.h.

Public Types

enum  ScalePos {
  None,
  Left,
  Right,
  Top,
  Bottom
}

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

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)


Constructor & Destructor Documentation

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

Constructor.

Definition at line 61 of file qwt_thermo.cpp.

References setRange().

QwtThermo::~QwtThermo  )  [virtual]
 

Destructor.

Definition at line 84 of file qwt_thermo.cpp.


Member Function Documentation

const QBrush & QwtThermo::alarmBrush  )  const
 

Return the liquid brush above the alarm threshold.

Definition at line 645 of file qwt_thermo.cpp.

const QColor & QwtThermo::alarmColor  )  const
 

Return the liquid color above the alarm threshold.

Definition at line 661 of file qwt_thermo.cpp.

bool QwtThermo::alarmEnabled  )  const
 

Return if the alarm threshold is enabled or disabled.

Definition at line 727 of file qwt_thermo.cpp.

double QwtThermo::alarmLevel  )  const
 

Return the alarm threshold.

Definition at line 675 of file qwt_thermo.cpp.

int QwtThermo::borderWidth  )  const
 

Return the border width of the thermometer pipe.

Definition at line 566 of file qwt_thermo.cpp.

void QwtThermo::draw QPainter *  p,
const QRect &  update_rect
[protected]
 

Draw the whole QwtThermo.

Definition at line 148 of file qwt_thermo.cpp.

References QwtScaleDraw::draw(), drawThermo(), and QwtAbstractScale::scaleDraw().

Referenced by paintEvent().

void QwtThermo::drawThermo QPainter *  p  )  [protected]
 

Redraw the liquid in thermometer pipe.

Definition at line 391 of file qwt_thermo.cpp.

Referenced by draw().

const QBrush & QwtThermo::fillBrush  )  const
 

Return the liquid brush.

Definition at line 613 of file qwt_thermo.cpp.

const QColor & QwtThermo::fillColor  )  const
 

Return the liquid color.

Definition at line 629 of file qwt_thermo.cpp.

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

Notify a font change.

Definition at line 377 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 188 of file qwt_thermo.cpp.

References QwtScaleDraw::map(), QwtScaleDraw::minBorderDist(), QwtAbstractScale::scaleDraw(), QwtScaleDraw::setGeometry(), and QwtScaleMap::setPaintInterval().

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

double QwtThermo::maxValue  )  const
 

Return the maximum value.

Definition at line 96 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 746 of file qwt_thermo.cpp.

References QwtScaleDraw::minHeight(), QwtScaleDraw::minWidth(), and QwtAbstractScale::scaleDraw().

Referenced by sizeHint().

double QwtThermo::minValue  )  const
 

Return the minimum value.

Definition at line 108 of file qwt_thermo.cpp.

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

Qt paint event.

Definition at line 131 of file qwt_thermo.cpp.

References draw(), and QwtPaintBuffer::painter().

int QwtThermo::pipeWidth  )  const
 

Return the width of the pipe.

Definition at line 691 of file qwt_thermo.cpp.

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

Qt resize event handler.

Definition at line 177 of file qwt_thermo.cpp.

References layoutThermo().

void QwtThermo::scaleChange  )  [protected, virtual]
 

Notify a scale change.

Reimplemented from QwtAbstractScale.

Definition at line 384 of file qwt_thermo.cpp.

References layoutThermo().

QwtThermo::ScalePos QwtThermo::scalePosition  )  const
 

Return the scale position.

Definition at line 371 of file qwt_thermo.cpp.

void QwtThermo::setAlarmBrush const QBrush &  b  ) 
 

Specify the liquid brush above the alarm threshold.

Parameters:
c New brush. The default is solid white.

Definition at line 638 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 654 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 720 of file qwt_thermo.cpp.

void QwtThermo::setAlarmLevel double  v  ) 
 

Specify the alarm threshold.

Definition at line 667 of file qwt_thermo.cpp.

void QwtThermo::setBorderWidth int  w  ) 
 

Set the border width of the pipe.

Definition at line 555 of file qwt_thermo.cpp.

References layoutThermo().

void QwtThermo::setFillBrush const QBrush &  b  ) 
 

Change the brush of the liquid.

Parameters:
c New brush. The default brush is solid black.

Definition at line 606 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 622 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 711 of file qwt_thermo.cpp.

void QwtThermo::setMaxValue double  v  ) 
 

Set the maximum value.

Definition at line 90 of file qwt_thermo.cpp.

References setRange().

void QwtThermo::setMinValue double  v  ) 
 

Set the minimum value.

Definition at line 102 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 None 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 None.
A valid combination of scale position and orientation is enforced:
  • a horizontal thermometer can have the scale positions Top, Bottom or None;
  • a vertical thermometer can have the scale positions Left, Right or None;
  • an invalid scale position will default to None.

See also:
QwtThermo::setScalePosition()

Definition at line 299 of file qwt_thermo.cpp.

References layoutThermo().

Referenced by setScalePosition().

void QwtThermo::setPipeWidth int  w  ) 
 

Change the width of the pipe.

Definition at line 681 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 577 of file qwt_thermo.cpp.

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

Referenced by QwtThermo(), 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 Left or Right, the scale orientation will become Qt::Vertical;
  • if the new scale position is Bottom or Top, the scale orientation will become Qt::Horizontal;
  • if the new scale position is None, the scale orientation will not change.

See also:
QwtThermo::setOrientation()

Definition at line 360 of file qwt_thermo.cpp.

References setOrientation().

void QwtThermo::setValue double  val  )  [slot]
 

Set the current value.

Definition at line 114 of file qwt_thermo.cpp.

QSize QwtThermo::sizeHint  )  const [virtual]
 

Returns:
the minimum size hint
See also:
QwtThermo::minimumSizeHint

Definition at line 736 of file qwt_thermo.cpp.

References minimumSizeHint().

double QwtThermo::value  )  const
 

Return the value.

Definition at line 124 of file qwt_thermo.cpp.


Generated on Wed Aug 31 23:03:57 2005 for Qwt User's Guide by  doxygen 1.4.1