Qwt User's Guide  5.2.3
Public Types | Public Slots | Public Member Functions | Protected Member Functions
QwtThermo Class Reference

#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

void setValue (double val)

Public Member Functions

 QwtThermo (QWidget *parent=NULL)
virtual ~QwtThermo ()
const QBrush & alarmBrush () const
const QColor & alarmColor () const
bool alarmEnabled () const
double alarmLevel () const
int borderWidth () const
const QBrush & fillBrush () const
const QColor & fillColor () const
double maxValue () const
virtual QSize minimumSizeHint () const
double minValue () const
int pipeWidth () const
const QwtScaleDrawscaleDraw () const
ScalePos scalePosition () const
void setAlarmBrush (const QBrush &b)
void setAlarmColor (const QColor &c)
void setAlarmEnabled (bool tf)
void setAlarmLevel (double v)
void setBorderWidth (int w)
void setFillBrush (const QBrush &b)
void setFillColor (const QColor &c)
void setMargin (int m)
void setMaxValue (double v)
void setMinValue (double v)
void setOrientation (Qt::Orientation o, ScalePos s)
void setPipeWidth (int w)
void setRange (double vmin, double vmax, bool lg=false)
void setScaleDraw (QwtScaleDraw *)
void setScalePosition (ScalePos s)
virtual QSize sizeHint () const
double value () const
- Public Member Functions inherited from QwtAbstractScale
 QwtAbstractScale ()
virtual ~QwtAbstractScale ()
bool autoScale () const
const QwtScaleEnginescaleEngine () const
QwtScaleEnginescaleEngine ()
const QwtScaleMapscaleMap () const
int scaleMaxMajor () const
int scaleMaxMinor () const
void setAutoScale ()
void setScale (double vmin, double vmax, double step=0.0)
void setScale (const QwtDoubleInterval &, double step=0.0)
void setScale (const QwtScaleDiv &s)
void setScaleEngine (QwtScaleEngine *)
void setScaleMaxMajor (int ticks)
void setScaleMaxMinor (int ticks)

Protected Member Functions

void draw (QPainter *p, const QRect &update_rect)
void drawThermo (QPainter *p)
virtual void fontChange (const QFont &oldFont)
void layoutThermo (bool update=true)
virtual void paintEvent (QPaintEvent *e)
virtual void resizeEvent (QResizeEvent *e)
virtual void scaleChange ()
QwtScaleDrawscaleDraw ()
- Protected Member Functions inherited from QwtAbstractScale
const QwtAbstractScaleDrawabstractScaleDraw () const
QwtAbstractScaleDrawabstractScaleDraw ()
void rescale (double vmin, double vmax, double step=0.0)
void setAbstractScaleDraw (QwtAbstractScaleDraw *)

Detailed Description

The Thermometer Widget.

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

sysinfo.png

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

Constructor & Destructor Documentation

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

Constructor

Parameters:
parentParent widget

Member Function Documentation

const QBrush & QwtThermo::alarmBrush ( ) const

Return the liquid brush above the alarm threshold.

See also:
setAlarmBrush()
double QwtThermo::alarmLevel ( ) const

Return the alarm threshold.

See also:
setAlarmLevel()
int QwtThermo::borderWidth ( ) const

Return the border width of the thermometer pipe.

See also:
setBorderWidth()
void QwtThermo::draw ( QPainter *  painter,
const QRect &  rect 
)
protected

Draw the whole QwtThermo.

Parameters:
painterPainter
rectUpdate rectangle
void QwtThermo::drawThermo ( QPainter *  painter)
protected

Redraw the liquid in thermometer pipe.

Parameters:
painterPainter
const QBrush & QwtThermo::fillBrush ( ) const

Return the liquid brush.

See also:
setFillBrush()
const QColor & QwtThermo::fillColor ( ) const

Return the liquid color.

See also:
setFillColor()
void QwtThermo::layoutThermo ( bool  update_geometry = true)
protected

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

Parameters:
update_geometrynotify the layout system and call update to redraw the scale
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)
protectedvirtual

Qt paint event. event Paint event

int QwtThermo::pipeWidth ( ) const

Return the width of the pipe.

See also:
setPipeWidth()
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.

Parameters:
brushNew brush. The default is solid white.
See also:
alarmBrush()
void QwtThermo::setAlarmColor ( const QColor &  c)

Specify the liquid color above the alarm threshold.

Parameters:
cNew color. The default is white.
void QwtThermo::setAlarmEnabled ( bool  tf)

Enable or disable the alarm threshold.

Parameters:
tftrue (disabled) or false (enabled)
void QwtThermo::setAlarmLevel ( double  level)

Specify the alarm threshold.

Parameters:
levelAlarm threshold
See also:
alarmLevel()
void QwtThermo::setBorderWidth ( int  width)

Set the border width of the pipe.

Parameters:
widthBorder width
See also:
borderWidth()
void QwtThermo::setFillBrush ( const QBrush &  brush)

Change the brush of the liquid.

Parameters:
brushNew brush. The default brush is solid black.
See also:
fillBrush()
void QwtThermo::setFillColor ( const QColor &  c)

Change the color of the liquid.

Parameters:
cNew color. The default color is black.
See also:
fillColor()
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:
mNew 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.
void QwtThermo::setMaxValue ( double  max)

Set the maximum value.

Parameters:
maxMaximum value
See also:
maxValue(), setMinValue()
void QwtThermo::setMinValue ( double  min)

Set the minimum value.

Parameters:
minMinimum value
See also:
minValue(), setMaxValue()
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  vmin,
double  vmax,
bool  logarithmic = false 
)

Set the range.

Parameters:
vminvalue corresponding lower or left end of the thermometer
vmaxvalue corresponding to the upper or right end of the thermometer
logarithmiclogarithmic mapping, true or false
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::setValue ( double  value)
slot

Set the current value.

Parameters:
valueNew Value
See also:
value()
QSize QwtThermo::sizeHint ( ) const
virtual
Returns:
the minimum size hint
See also:
minimumSizeHint()