qt 设计显示温湿度界面及代码实现
时间: 2023-11-13 15:04:16 浏览: 286
下面是一个简单的Qt代码示例,用于显示温度和湿度的界面。在这个示例中,我们使用QLCDNumber控件来显示温度和湿度,使用QSlider控件来模拟温度和湿度的变化,使用QPushButton控件来触发温度和湿度的更新。
mainwindow.h文件:
```cpp
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QLCDNumber>
#include <QSlider>
#include <QPushButton>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void updateTemperature(int value);
void updateHumidity(int value);
private:
QLCDNumber *temperatureLCD;
QLCDNumber *humidityLCD;
QSlider *temperatureSlider;
QSlider *humiditySlider;
QPushButton *updateButton;
};
#endif // MAINWINDOW_H
```
mainwindow.cpp文件:
```cpp
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
// 创建温度和湿度的QLCDNumber控件
temperatureLCD = new QLCDNumber(this);
temperatureLCD->setDigitCount(3);
temperatureLCD->display(25);
humidityLCD = new QLCDNumber(this);
humidityLCD->setDigitCount(3);
humidityLCD->display(50);
// 创建温度和湿度的QSlider控件
temperatureSlider = new QSlider(Qt::Horizontal, this);
temperatureSlider->setRange(0, 50);
temperatureSlider->setValue(25);
humiditySlider = new QSlider(Qt::Horizontal, this);
humiditySlider->setRange(0, 100);
humiditySlider->setValue(50);
// 创建更新按钮
updateButton = new QPushButton(tr("更新"), this);
// 连接温度和湿度的QSlider控件的valueChanged信号和槽函数
connect(temperatureSlider, &QSlider::valueChanged, this, &MainWindow::updateTemperature);
connect(humiditySlider, &QSlider::valueChanged, this, &MainWindow::updateHumidity);
// 连接更新按钮的clicked信号和槽函数
connect(updateButton, &QPushButton::clicked, this, [=](){
temperatureLCD->display(temperatureSlider->value());
humidityLCD->display(humiditySlider->value());
});
// 创建布局
QVBoxLayout *temperatureLayout = new QVBoxLayout;
temperatureLayout->addWidget(new QLabel(tr("温度")));
temperatureLayout->addWidget(temperatureLCD);
temperatureLayout->addWidget(temperatureSlider);
QVBoxLayout *humidityLayout = new QVBoxLayout;
humidityLayout->addWidget(new QLabel(tr("湿度")));
humidityLayout->addWidget(humidityLCD);
humidityLayout->addWidget(humiditySlider);
QHBoxLayout *sliderLayout = new QHBoxLayout;
sliderLayout->addLayout(temperatureLayout);
sliderLayout->addLayout(humidityLayout);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(sliderLayout);
mainLayout->addWidget(updateButton);
// 设置窗口布局
QWidget *centralWidget = new QWidget(this);
centralWidget->setLayout(mainLayout);
setCentralWidget(centralWidget);
}
MainWindow::~MainWindow()
{
}
void MainWindow::updateTemperature(int value)
{
temperatureLCD->display(value);
}
void MainWindow::updateHumidity(int value)
{
humidityLCD->display(value);
}
```
在这个示例中,我们创建了一个QMainWindow窗口,并在其中添加了两个QLCDNumber控件用于显示温度和湿度,两个QSlider控件用于模拟温度和湿度的变化,以及一个QPushButton控件用于更新温度和湿度的数值。在程序运行时,我们将温度和湿度的QLCDNumber控件、温度和湿度的QSlider控件以及更新按钮都添加到窗口布局中,并连接了QSlider控件的valueChanged信号和槽函数,以及QPushButton控件的clicked信号和槽函数。在槽函数中,我们使用QLCDNumber控件的display函数来更新温度和湿度的数值。
阅读全文