⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 weatherstation.cpp

📁 c++ GUI Programming with QT4书中的源码
💻 CPP
字号:
#include <QtGui>#include <QtNetwork>#include "weatherstation.h"WeatherStation::WeatherStation(QWidget *parent)    : QDialog(parent){    udpSocket.bind(5824);    connect(&udpSocket, SIGNAL(readyRead()),            this, SLOT(processPendingDatagrams()));    dateLabel = new QLabel(tr("Date:"));    timeLabel = new QLabel(tr("Time:"));    temperatureLabel = new QLabel(tr("Temperature:"));    humidityLabel = new QLabel(tr("Humidity:"));    altitudeLabel = new QLabel(tr("Altitude:"));    dateLineEdit = new QLineEdit;    timeLineEdit = new QLineEdit;    temperatureLineEdit = new QLineEdit;    humidityLineEdit = new QLineEdit;    altitudeLineEdit = new QLineEdit;    dateLineEdit->setReadOnly(true);    timeLineEdit->setReadOnly(true);    temperatureLineEdit->setReadOnly(true);    humidityLineEdit->setReadOnly(true);    altitudeLineEdit->setReadOnly(true);    QGridLayout *mainLayout = new QGridLayout;    mainLayout->addWidget(dateLabel, 0, 0);    mainLayout->addWidget(dateLineEdit, 0, 1);    mainLayout->addWidget(timeLabel, 1, 0);    mainLayout->addWidget(timeLineEdit, 1, 1);    mainLayout->addWidget(temperatureLabel, 2, 0);    mainLayout->addWidget(temperatureLineEdit, 2, 1);    mainLayout->addWidget(humidityLabel, 3, 0);    mainLayout->addWidget(humidityLineEdit, 3, 1);    mainLayout->addWidget(altitudeLabel, 4, 0);    mainLayout->addWidget(altitudeLineEdit, 4, 1);    setLayout(mainLayout);    setWindowTitle(tr("Weather Station"));}void WeatherStation::processPendingDatagrams(){    QByteArray datagram;    do {        datagram.resize(udpSocket.pendingDatagramSize());        udpSocket.readDatagram(datagram.data(), datagram.size());    } while (udpSocket.hasPendingDatagrams());    QDateTime dateTime;    double temperature;    double humidity;    double altitude;    QDataStream in(&datagram, QIODevice::ReadOnly);    in.setVersion(QDataStream::Qt_4_1);    in >> dateTime >> temperature >> humidity >> altitude;    dateLineEdit->setText(dateTime.date().toString());    timeLineEdit->setText(dateTime.time().toString());    temperatureLineEdit->setText(tr("%1 癈").arg(temperature));    humidityLineEdit->setText(tr("%1%").arg(humidity));    altitudeLineEdit->setText(tr("%1 m").arg(altitude));}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -