Qwt User's Guide
svn
|
#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 | |
const QBrush & | alarmBrush () const |
bool | alarmEnabled () const |
double | alarmLevel () const |
bool | autoScale () 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 |
QwtThermo (QWidget *parent=NULL) | |
QwtInterval::BorderFlags | rangeFlags () const |
const QwtScaleDraw * | scaleDraw () const |
const QwtScaleEngine * | scaleEngine () const |
QwtScaleEngine * | scaleEngine () |
const QwtScaleMap & | scaleMap () const |
int | scaleMaxMajor () const |
int | scaleMaxMinor () const |
ScalePos | scalePosition () const |
void | setAlarmBrush (const QBrush &b) |
void | setAlarmEnabled (bool tf) |
void | setAlarmLevel (double v) |
void | setAutoScale () |
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 | setScale (double vmin, double vmax, double step=0.0) |
void | setScale (const QwtInterval &, double step=0.0) |
void | setScale (const QwtScaleDiv &) |
void | setScaleDraw (QwtScaleDraw *) |
void | setScaleEngine (QwtScaleEngine *) |
void | setScaleMaxMajor (int ticks) |
void | setScaleMaxMinor (int ticks) |
void | setScalePosition (ScalePos s) |
void | setSpacing (int) |
virtual QSize | sizeHint () const |
int | spacing () const |
double | value () const |
virtual | ~QwtThermo () |
Protected Member Functions | |
const QwtAbstractScaleDraw * | abstractScaleDraw () const |
QwtAbstractScaleDraw * | abstractScaleDraw () |
virtual void | changeEvent (QEvent *) |
virtual void | drawLiquid (QPainter *, const QRect &) const |
virtual void | paintEvent (QPaintEvent *) |
QRect | pipeRect () const |
void | rescale (double vmin, double vmax, double step=0.0) |
virtual void | resizeEvent (QResizeEvent *) |
virtual void | scaleChange () |
QwtScaleDraw * | scaleDraw () |
void | setAbstractScaleDraw (QwtAbstractScaleDraw *) |
The Thermometer Widget.
QwtThermo is a widget which displays a value in an interval. It supports:
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(); }
enum QwtThermo::ScalePos |
Scale position. QwtThermo tries to enforce valid combinations of its orientation and scale position:
QwtThermo::QwtThermo | ( | QWidget * | parent = NULL | ) | [explicit] |
Constructor
parent | Parent widget |
QwtThermo::~QwtThermo | ( | ) | [virtual] |
Destructor.
const QwtAbstractScaleDraw * QwtAbstractScale::abstractScaleDraw | ( | ) | const [protected, inherited] |
QwtAbstractScaleDraw * QwtAbstractScale::abstractScaleDraw | ( | ) | [protected, inherited] |
const QBrush & QwtThermo::alarmBrush | ( | ) | const |
Return the liquid brush ( QPalette::Highlight ) above the alarm threshold.
bool QwtThermo::alarmEnabled | ( | ) | const |
double QwtThermo::alarmLevel | ( | ) | const |
Return the alarm threshold.
bool QwtAbstractScale::autoScale | ( | ) | const [inherited] |
true
if autoscaling is enabled int QwtThermo::borderWidth | ( | ) | const |
Return the border width of the thermometer pipe.
void QwtThermo::changeEvent | ( | QEvent * | event | ) | [protected, virtual] |
Qt change event handler
event | Event |
QwtColorMap * QwtThermo::colorMap | ( | ) |
const QwtColorMap * QwtThermo::colorMap | ( | ) | const |
void QwtThermo::drawLiquid | ( | QPainter * | painter, |
const QRect & | pipeRect | ||
) | const [protected, virtual] |
Redraw the liquid in thermometer pipe.
painter | Painter |
pipeRect | Bounding rectangle of the pipe without borders |
const QBrush & QwtThermo::fillBrush | ( | ) | const |
Return the liquid ( QPalette::ButtonText ) brush.
double QwtThermo::maxValue | ( | ) | const |
Return the maximum value.
QSize QwtThermo::minimumSizeHint | ( | ) | const [virtual] |
Return a minimum size hint.
double QwtThermo::minValue | ( | ) | const |
Return the minimum value.
void QwtThermo::paintEvent | ( | QPaintEvent * | event | ) | [protected, virtual] |
Qt paint event.
event | Paint event |
QRect QwtThermo::pipeRect | ( | ) | const [protected] |
int QwtThermo::pipeWidth | ( | ) | const |
Return the width of the pipe.
QwtInterval::BorderFlags QwtThermo::rangeFlags | ( | ) | const |
void QwtAbstractScale::rescale | ( | double | vmin, |
double | vmax, | ||
double | stepSize = 0.0 |
||
) | [protected, inherited] |
Recalculate the scale division and update the scale draw.
vmin | Lower limit of the scale interval |
vmax | Upper limit of the scale interval |
stepSize | Major step size |
void QwtThermo::resizeEvent | ( | QResizeEvent * | event | ) | [protected, virtual] |
Qt resize event handler
event | Resize event |
void QwtThermo::scaleChange | ( | ) | [protected, virtual] |
Notify a scale change.
Reimplemented from QwtAbstractScale.
const QwtScaleDraw * QwtThermo::scaleDraw | ( | ) | const |
QwtScaleDraw * QwtThermo::scaleDraw | ( | ) | [protected] |
const QwtScaleEngine * QwtAbstractScale::scaleEngine | ( | ) | const [inherited] |
QwtScaleEngine * QwtAbstractScale::scaleEngine | ( | ) | [inherited] |
const QwtScaleMap & QwtAbstractScale::scaleMap | ( | ) | const [inherited] |
int QwtAbstractScale::scaleMaxMajor | ( | ) | const [inherited] |
int QwtAbstractScale::scaleMaxMinor | ( | ) | const [inherited] |
QwtThermo::ScalePos QwtThermo::scalePosition | ( | ) | const |
Return the scale position.
void QwtAbstractScale::setAbstractScaleDraw | ( | QwtAbstractScaleDraw * | scaleDraw | ) | [protected, inherited] |
Set a scale draw.
scaleDraw has to be created with new and will be deleted in ~QwtAbstractScale or the next call of setAbstractScaleDraw.
void QwtThermo::setAlarmBrush | ( | const QBrush & | brush | ) |
Specify the liquid brush above the alarm threshold.
Changes the QPalette::Highlight brush of the palette.
brush | New brush. |
void QwtThermo::setAlarmEnabled | ( | bool | tf | ) |
Enable or disable the alarm threshold.
tf | true (disabled) or false (enabled) |
void QwtThermo::setAlarmLevel | ( | double | level | ) |
Specify the alarm threshold.
level | Alarm threshold |
void QwtAbstractScale::setAutoScale | ( | ) | [inherited] |
Advise the widget to control the scale range internally.
Autoscaling is on by default.
void QwtThermo::setBorderWidth | ( | int | width | ) |
void QwtThermo::setColorMap | ( | QwtColorMap * | colorMap | ) |
Assign a color map for the fill color.
colorMap | Color map |
void QwtThermo::setFillBrush | ( | const QBrush & | brush | ) |
Change the brush of the liquid.
Changes the QPalette::ButtonText brush of the palette.
brush | New brush. |
void QwtThermo::setMaxValue | ( | double | maxValue | ) |
Set the maximum value.
maxValue | Maximum value |
void QwtThermo::setMinValue | ( | double | minValue | ) |
Set the minimum value.
minValue | Minimum value |
void QwtThermo::setOrientation | ( | Qt::Orientation | o, |
ScalePos | s | ||
) |
Set the thermometer orientation and the scale position.
The scale position NoScale disables the scale.
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:
void QwtThermo::setPipeWidth | ( | int | width | ) |
void QwtThermo::setRange | ( | double | minValue, |
double | maxValue, | ||
bool | logarithmic = false |
||
) |
Set the range.
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::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.
flags | Range flags |
void QwtAbstractScale::setScale | ( | double | vmin, |
double | vmax, | ||
double | stepSize = 0.0 |
||
) | [inherited] |
Specify a scale.
Disable autoscaling and define a scale by an interval and a step size
vmin | lower limit of the scale interval |
vmax | upper limit of the scale interval |
stepSize | major step size |
d_data->autoScale = false; d_data->stepSize = stepSize; rescale( vmin, vmax, stepSize ); QwtAbstractScale *xx = new QwtAbstractScale(12, "hello", this);
void QwtAbstractScale::setScale | ( | const QwtInterval & | interval, |
double | stepSize = 0.0 |
||
) | [inherited] |
Specify a scale.
Disable autoscaling and define a scale by an interval and a step size
interval | Interval |
stepSize | major step size |
void QwtAbstractScale::setScale | ( | const QwtScaleDiv & | scaleDiv | ) | [inherited] |
Specify a scale.
Disable autoscaling and define a scale by a scale division
scaleDiv | Scale division |
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().
scaleDraw | ScaleDraw object, that has to be created with new and will be deleted in ~QwtThermo or the next call of setScaleDraw(). |
void QwtAbstractScale::setScaleEngine | ( | QwtScaleEngine * | scaleEngine | ) | [inherited] |
Set a scale engine.
The scale engine is responsible for calculating the scale division, and in case of auto scaling how to align the scale.
scaleEngine has to be created with new and will be deleted in ~QwtAbstractScale or the next call of setScaleEngine.
void QwtAbstractScale::setScaleMaxMajor | ( | int | ticks | ) | [inherited] |
Set the maximum number of major tick intervals.
The scale's major ticks are calculated automatically such that the number of major intervals does not exceed ticks. The default value is 5.
ticks | maximal number of major ticks. |
void QwtAbstractScale::setScaleMaxMinor | ( | int | ticks | ) | [inherited] |
Set the maximum number of minor tick intervals.
The scale's minor ticks are calculated automatically such that the number of minor intervals does not exceed ticks. The default value is 3.
ticks |
void QwtThermo::setScalePosition | ( | ScalePos | scalePos | ) |
Change the scale position (and thermometer orientation).
scalePos | Position of the scale. |
A valid combination of scale position and orientation is enforced:
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.
spacing | Number of pixels |
void QwtThermo::setValue | ( | double | value | ) | [virtual, slot] |
QSize QwtThermo::sizeHint | ( | ) | const [virtual] |
int QwtThermo::spacing | ( | ) | const |
double QwtThermo::value | ( | ) | const |
Return the value.