QwtThermo 是一个基于 Qt 框架的类库,用于创建温度计控件。它提供了一些方便的功能来展示和处理温度计相关的数据。 QwtThermo 添加了特定于温度计的功能。 使用 QwtThermo,可以实现以下功能:
总结来说,QwtThermo 是一个用于实现温度计的类,它提供了一些方便的功能来处理温度计显示数据,也可以自定义刻度线。
以下是类继承关系图:

void setOrientation (Qt::Orientation) 设置方向
void setBorderWidth (int) 设置边框宽度
void setColorMap (QwtColorMap *) 为填充颜色指定颜色贴图
void setPipeWidth (int) 设置管道的宽度
void setScaleDraw (QwtScaleDraw *) 设置自定义刻度轴
void setSpacing (int) 设置距离刻度的空隙宽度
void setFillBrush (const QBrush &) 设置液体刷
void setValue (double) 设置当前值
创建两个温度计,另一个设置不同范围的颜色显示。

- #include "ThermoWidget.h"
- #include "ui_ThermoWidget.h"
- #include "qwt_thermo.h"
- #include "qwt_color_map.h"
-
- class Gauge : public QwtThermo
- {
- public:
- Gauge()
- {
- setScale( 0.0, 100.0 );
- setFont( QFont( "Helvetica", 8 ) );
- setPipeWidth( 6 );
- setScaleMaxMajor( 6 );
- setScaleMaxMinor( 5 );
- setFillBrush( Qt::darkMagenta );
- }
- };
-
- ThermoWidget::ThermoWidget(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::ThermoWidget)
- {
- ui->setupUi(this);
-
- Gauge *g1 = new Gauge();
- ui->horizontalLayout->addWidget(g1);
- g1->setValue(80);
-
- Gauge *g2 = new Gauge();
- ui->horizontalLayout->addWidget(g2);
- g2->setValue(80);
-
- g2->setScalePosition( QwtThermo::TrailingScale );
- QwtLinearColorMap* colorMap =
- new QwtLinearColorMap( Qt::blue, Qt::red );
-
- colorMap->addColorStop( 0.2, Qt::yellow );
- colorMap->addColorStop( 0.3, Qt::cyan );
- colorMap->addColorStop( 0.4, Qt::green );
- colorMap->addColorStop( 0.5, Qt::magenta );
- colorMap->setMode( QwtLinearColorMap::FixedColors );
-
- g2->setColorMap( colorMap );
- }
-
- ThermoWidget::~ThermoWidget()
- {
- delete ui;
- }