| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 | 
							- /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
 
-  * Qwt Widget Library
 
-  * Copyright (C) 1997   Josef Wilgen
 
-  * Copyright (C) 2002   Uwe Rathmann
 
-  *
 
-  * This library is free software; you can redistribute it and/or
 
-  * modify it under the terms of the Qwt License, Version 1.0
 
-  *****************************************************************************/
 
- #ifndef QWT_THERMO_H
 
- #define QWT_THERMO_H
 
- #include "qwt_global.h"
 
- #include "qwt_abstract_scale.h"
 
- #include <qwidget.h>
 
- #include <qcolor.h>
 
- #include <qfont.h>
 
- #include <qrect.h>
 
- class QwtScaleDraw;
 
- /*!
 
-   \brief 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.
 
-   \image html 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:
 
- \code
 
- #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();
 
- }
 
- \endcode
 
-   \todo Improve the support for a logarithmic range and/or scale.
 
- */
 
- class QWT_EXPORT QwtThermo: public QWidget, public QwtAbstractScale
 
- {
 
-     Q_OBJECT
 
-     Q_ENUMS( ScalePos )
 
-     Q_PROPERTY( QBrush alarmBrush READ alarmBrush WRITE setAlarmBrush )
 
-     Q_PROPERTY( QColor alarmColor READ alarmColor WRITE setAlarmColor )
 
-     Q_PROPERTY( bool alarmEnabled READ alarmEnabled WRITE setAlarmEnabled )
 
-     Q_PROPERTY( double alarmLevel READ alarmLevel WRITE setAlarmLevel )
 
-     Q_PROPERTY( ScalePos scalePosition READ scalePosition
 
-         WRITE setScalePosition )
 
-     Q_PROPERTY( int borderWidth READ borderWidth WRITE setBorderWidth )
 
-     Q_PROPERTY( QBrush fillBrush READ fillBrush WRITE setFillBrush )
 
-     Q_PROPERTY( QColor fillColor READ fillColor WRITE setFillColor )
 
-     Q_PROPERTY( double maxValue READ maxValue WRITE setMaxValue )
 
-     Q_PROPERTY( double minValue READ minValue WRITE setMinValue )
 
-     Q_PROPERTY( int pipeWidth READ pipeWidth WRITE setPipeWidth )
 
-     Q_PROPERTY( double value READ value WRITE setValue )
 
- public:
 
-     /*!
 
-       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
 
-       \sa setOrientation(), setScalePosition()
 
-     */
 
-     enum ScalePos
 
-     {
 
-         NoScale,
 
-         LeftScale,
 
-         RightScale,
 
-         TopScale,
 
-         BottomScale
 
-     };
 
-     explicit 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;
 
- public Q_SLOTS:
 
-     virtual void setValue( double val );
 
- protected:
 
-     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();
 
- private:
 
-     void initThermo();
 
-     int transform( double v ) const;
 
-     class PrivateData;
 
-     PrivateData *d_data;
 
- };
 
- #endif
 
 
  |