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.mzph.cn/pingmian/79852.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AWS MCP Servers

文章目录 一、关于 AWS MCP Servers什么是模型上下文协议&#xff08;MCP&#xff09;以及它是如何与AWS MCP服务器协同工作的&#xff1f;为什么选择MCP服务器&#xff1f; 二、可用 Servers核心MCP服务器AWS 文档服务器亚马逊 Bedrock 知识库检索 MCP 服务器AWS CDK MCP 服务…

python如何把pdf转word

在Python中将PDF转换为Word文档&#xff08;.docx&#xff09;比反向转换&#xff08;Word转PDF&#xff09;更具挑战性&#xff0c;因为PDF是固定格式&#xff0c;而Word是可编辑格式。以下是几种可行的方法及详细步骤&#xff1a; 方法1&#xff1a;使用 pdf2docx 库 pdf2do…

NLP 和大模型技术路线

transformers快速入门 NLP 和大模型技术路线 在自然语言处理&#xff08;NLP&#xff09;和大模型领域&#xff0c;技术路线的学习应该从基础开始&#xff0c;逐步深入到更高阶的应用和优化技术。本文将详细介绍相关技术点的学习顺序&#xff0c;以及每个技术点的关键学习内容…

WordPress个人博客搭建(二):在 Ubuntu 22.04 x64 系统中使用1Panel 部署 WordPress

前言 在之前的安装1Panel面板的文章中&#xff0c;我们已经成功将1Panel面板安装到了2核4G配置的非凡云云服务器上。1Panel作为一款现代化的服务器管理面板&#xff0c;极大简化了网站部署流程。本文将详细介绍如何使用1Panel面板在云服务器上安装部署WordPress&#xff0c;帮…

面试高频算法:最长回文子串

题目&#xff1a;5. 最长回文子串 给你一个字符串 s&#xff0c;找到 s 中最长的回文子串。 回文&#xff1a;如果字符串向前和向后读都相同&#xff0c;则它满足回文性&#xff1b;子串&#xff1a;子字符串 是字符串中连续的非空字符序列。 示例 1&#xff1a; 输入&…

全文索引数据库Elasticsearch底层Lucene

Lucene 全文检索的心&#xff0c;天才的想法。 一个高效的&#xff0c;可扩展的&#xff0c;全文检索库。全部用 Java 实现&#xff0c;无须配置。仅支持纯文本文件的索引(Indexing)和搜索(Search)。不负责由其他格式的文件抽取纯文本文件&#xff0c;或从网络中抓取文件的过程…

JVM——Java内存模型

Java内存模型 在Java多线程编程中&#xff0c;Java内存模型&#xff08;Java Memory Model, JMM&#xff09;是理解程序执行行为和实现线程安全的关键。下面我们深入探讨Java内存模型的内容。 Java内存模型概述 Java内存模型定义了Java程序中变量的内存操作规则&#xff0c;…

nRF Connect SDK system off模式介绍

目录 概述 1. 软硬件环境 1.1 软件开发环境 1.2 硬件环境 2 System Off 模式 2.1 模式介绍 2.2 注意事项 3 功能实现 3.1 框架结构介绍 3.2 代码介绍 4 功能验证 4.1 编译和下载代码 4.2 测试 4.3 使能CONFIG_APP_USE_RETAINED_MEM的测试 5 main.c的源代码文件…

白杨SEO:如何查看百度、抖音、微信、微博、小红书、知乎、B站、视频号、快手等7天内最热门话题及流量关键词有哪些?使用方法和免费工具推荐以及注意事项【干货】

大家好&#xff0c;我是白杨SEO&#xff0c;专注SEO十年以上&#xff0c;全网SEO流量实战派&#xff0c;AI搜索优化研究者。 &#xff08;温馨提醒&#xff1a;本文有点长&#xff0c;看不完建议先收藏或星标&#xff0c;后面慢慢看哈&#xff09; 最近&#xff0c;不管是在白…

2025 Mac常用软件安装配置

1、homebrew 2、jdk 1、使用brew安装jdk&#xff1a; brew install adoptopenjdk/openjdk/adoptopenjdk8 jdk默认安装位置在 /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home 目录。 2、配置环境变量&#xff1a; vim ~/.zshrc# Jdk export JAVA_HOM…

Linux 内核学习(6) --- Linux 内核基础知识

目录 Linux 内核基础知识进程调度内存管理虚拟文件系统和网络接口进程间通信Linux 内核编译Makefile 和 Kconfig内核Makefile内核Kconfig 配置项标识的写法depend 关键字select 关键字表达式逻辑关系Kconfig 其他语法 配置文件的编译Linux 内核引导方法Booloader 定义Linux 内核…

常见汇编代码及其指令

1. 数据传输指令 1.1. mov 作用&#xff1a;将数据从源操作数复制到目标操作数。语法&#xff1a;mov dest, src mov eax, 10 ; 将立即数 10 存入 eax 寄存器 mov ebx, eax ; 将 eax 的值复制到 ebx mov [ecx], eax ; 将 eax 的值写入 ecx 指向的内存地址 1.2. …

STM32基础教程——软件SPI

目录 前言 技术实现 接线图 代码实现 技术要点 引脚操作 SPI初始化 SPI起始信号 SPI终止信号 SPI字节交换 宏替换命令 W25Q64写使能 忙等待 读取设备ID号和制造商ID 页写入 数据读取 实验结果 问题记录 前言 SPI&#xff08;Serial Peripheral Interf…

(B题|矿山数据处理问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合

我是Tina表姐&#xff0c;毕业于中国人民大学&#xff0c;对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在&#xff0c;我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…

无网络环境下配置并运行 word2vec复现.py

需运行文件 # -*- coding: utf-8 -*- import torch import pandas as pd import jieba import torch import torch.nn as nn from tqdm import tqdm from torch.utils.data import DataLoader,Dataset from transformers import AutoTokenizer,AutoModeldef get_stop_word():w…

读《暗时间》有感

读《暗时间》有感 反思与笔记 这本书还是我无意中使用 ima 给我写职业规划的时候给出的&#xff0c;由于有收藏的习惯&#xff0c;我就去找了这本书。当读到第一章暗时间的时候给了我很大的冲击&#xff0c;我本身就是一个想快速读完一本书的人&#xff0c;看到东西没有深入思…

ubuntu安装Go SDK

# 下载最新版 Go 安装包&#xff08;以 1.21.5 为例&#xff09; wget https://golang.google.cn/dl/go1.21.5.linux-amd64.tar.gz # 解压到系统目录&#xff08;需要 root 权限&#xff09; sudo tar -C /usr/local -xzf go1.21.5.linux-amd64.tar.gz # 使用 Go 官方安装脚本…

FFmpeg(7.1版本)编译生成ffplay

FFmpeg在编译的时候,没有生成ffplay,怎么办? 1. 按照上一篇文章:FFmpeg(7.1版本)在Ubuntu18.04上的编译_ffmpeg-7.1-CSDN博客 在build.sh脚本里配置了ffplay 但是,实际上却没有生成ffplay,会是什么原因呢? 2. 原因是编译ffplay的时候,需要一些依赖库 sudo apt-get i…

【Python 函数】

Python 中的函数&#xff08;Function&#xff09;是可重复使用的代码块&#xff0c;用于封装特定功能并提高代码复用性。以下是函数的核心知识点&#xff1a; 一、基础语法 1. 定义函数 def greet(name):"""打印问候语""" # 文档字符串&…

7. HTML 表格基础

表格是网页开发中最基础也最实用的元素之一,尽管现代前端开发中表格布局已被 CSS 布局方案取代,但在展示结构化数据时,表格依然发挥着不可替代的作用。本文将基于提供的代码素材,系统讲解 HTML 表格的核心概念与实用技巧。 一、表格的基本结构 一个完整的 HTML 表格由以下…