当前位置: 首页 > ds >正文

Qt天气预报系统更新UI界面

Qt天气预报系统更新UI界面

  • 1、创建各个小部分列表
  • 2、定义一个更新UI函数
    • 2.1 实现更新UI界面函数

1、创建各个小部分列表

QList<QLabel *> weekList;                   //星期
QList<QLabel *> dateList;                   //日期QList<QLabel *> weatherList;                        //天气
QList<QLabel *> weatherIconList;                   //天气图标QList<QLabel *> airPollutionList;                   //空气污染指数QList<QLabel *> windPowerList;                      //风力
QList<QLabel *> windTypeList;                       //风的类型

2、定义一个更新UI函数

void updateUI();                                        //更新UI界面

2.1 实现更新UI界面函数

//更新UI界面
void MainWindow::updateUI()
{// 当前日期处理QDate currentDate = QDate::fromString(today.date, "yyyyMMdd");if (!currentDate.isValid()) {qWarning() << "Invalid current date:" << today.date;return;}ui->labelCurrentDate->setText(currentDate.toString("yyyy/MM/dd") + " " + day[1].week);ui->labelCity->setText(today.city);
//    ui->labelCurrentDate->setText(QDateTime::fromString(today.date,"yyyyMMdd").toString("yyyy/MM/dd")
//                                  + " " + day[1].week);  //当前日期//    ui->labelCity->setText(today.city);         //城市//今天ui->labelWeatherTypeP->setPixmap(weatherIconMap[today.weatherType]);   //天气图标ui->labelTemperature->setText(QString::number(today.temperature)+"℃");     //温度qDebug() <<today.temperature;ui->labelWeatherType->setText(today.weatherType);           //天气类型ui->labelTemperatureRange->setText(QString::number(today.lowTem) + "~" + QString::number(today.highTem) + "℃"); //温度范围ui->labelTips->setText(today.ganMao);               //天气小提示ui->labelWindTy->setText(today.windType);           //风的类型ui->labelWindPr->setText(today.windPower);          //风力ui->labelPM25Pr->setText(QString::number(today.PM25));                 //PM2.5ui->labelHumidityPr->setText(today.Humidity);                          //湿度ui->labelAirqualityPr->setText(today.airQuality);                        //空气质量//更新未来几天
//    const int maxDay = 7;const int maxDay = qMin(7, qMin(qMin(weekList.size(),  dateList.size()),qMin(qMin(weatherList.size(),  weatherIconList.size()),qMin(qMin(airPollutionList.size(),  windDirectionList.size()),windPowerList.size()))));for(int i = 0; i < maxDay; i++){qDebug() << "Updating index:"<< i << ", date:" << day[i].date;// 边界检查if (i >= 7 || i >= weekList.size() || i >= dateList.size() ||i >= weatherList.size() || i >= weatherIconList.size() ||i >= airPollutionList.size() || i >= windDirectionList.size() ||i >= windPowerList.size()) {qWarning() << "Index out of range:" << i;continue;}// 设置昨天、今天、明天等标签if(i == 0) {weekList[i]->setText("昨天"); // 直接设置第一天为昨天} else if(i == 1) {weekList[i]->setText("今天");} else if(i == 2) {weekList[i]->setText("明天");} else {weekList[i]->setText(day[i].week); // 后续显示实际星期}//日期 2025-1-28
//        QStringList ymdList = day[i].date.split("-");               //-作为分隔符
//        qDebug() << day[i].date;
//        dateList[i]->setText(ymdList[1] + "/" + ymdList[2]);        //取月份和日期 1/28// 设置日期QStringList ymdList = day[i].date.split("-");if (ymdList.size() >= 3) {dateList[i]->setText(ymdList[1] + "/" + ymdList[2]);} else {dateList[i]->setText("N/A");}//天气类型weatherList[i]->setText(day[i].weatherType);        //天气weatherIconList[i]->setPixmap(weatherIconMap[day[i].weatherType]);      //天气图标//空气质量if(day[i].airQuality >= 0 && day[i].airQuality<=50){airPollutionList[i]->setText("优");airPollutionList[i]->setStyleSheet("background-color: rgb(70, 211, 103);");}else if(day[i].airQuality > 50 && day[i].airQuality <= 100){airPollutionList[i]->setText("良");airPollutionList[i]->setStyleSheet("background-color: rgb(255, 199, 69);");}else if(day[i].airQuality > 100 && day[i].airQuality <= 150){airPollutionList[i]->setText("轻度");airPollutionList[i]->setStyleSheet("background-color: rgb(255, 199, 69);");}else if(day[i].airQuality > 150 && day[i].airQuality <= 200){airPollutionList[i]->setText("中度");airPollutionList[i]->setStyleSheet("background-color: rgb(255, 85, 0);");}else if(day[i].airQuality > 200 && day[i].airQuality <= 250){airPollutionList[i]->setText("重度");airPollutionList[i]->setStyleSheet("background-color: rgb(255, 0, 0);");}else{airPollutionList[i]->setText("严重");airPollutionList[i]->setStyleSheet("background-color: rgb(203, 0, 0);");}//风windDirectionList[i]->setText(day[i].windType);              //风向windPowerList[i]->setText(day[i].windPower);            //风力}//不添加温度就会显示为0℃ui->higntTemLabel->update();ui->lowTemLabel->update();
}

更新UI界面完成!
http://www.xdnf.cn/news/4205.html

相关文章:

  • ansible基础-优化
  • 代码随想录算法训练营day9:字符串part02
  • 英伟达开源英语自动语音识别模型:nvidia/parakeet-tdt-0.6b-v2
  • android zxing QrCode 库集成转竖屏适配问题
  • 餐具瓷器品牌十大排名
  • Linux安装RTL8215网卡驱动
  • FreeRTOS系统CPU使用率统计
  • AutoGPT
  • GESP2024年3月认证C++八级( 第二部分判断题(6-10))
  • 柯西乘积定理(Cauchy Product Theorem)
  • C# 反射
  • [特殊字符] 大模型(LLMs)RAG 版面分析——文本分块面
  • 农经权二轮延包软件—摸底申请表生成
  • 数据库的并发控制
  • nats v2.11.3全新上线!MQTT支持增强、JetStream性能优化、关键BUG修复,构建高效可信消息中间件新时代
  • NV287NV291美光固态闪存NV293NV294
  • Deepseek基础-api key申请及应用(java)、硅基流动api key申请及应用(dify)
  • ThreadLocal源码深度剖析:内存管理与哈希机制
  • Lora原理介绍并用Macbook air超快实现本地微调小模型
  • AI日报 · 2025年5月05日|雅诗兰黛与微软合作成立 AI 创新实验室,加速美妆产品研发与营销
  • 【言语理解】片段阅读之下文推断(6)
  • 设计模式每日硬核训练 Day 18:备忘录模式(Memento Pattern)完整讲解与实战应用
  • 全球化电商平台AWS云架构设计
  • 矩阵置零(中等)
  • 设计模式-基础概念学习总结(继承、多态、虚方法、方法重写)
  • 深入理解块级格式化上下文(BFC)
  • 文本三剑客
  • 字符串匹配 之 拓展 KMP算法(Z算法)
  • 数据集-目标检测系列- 印度人脸 检测数据集 indian face >> DataBall
  • 深度解析:从 GPT-4o“谄媚”到 Deepseek“物理腔”,透视大模型行为模式的底层逻辑与挑战