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.pswp.cn/pingmian/79852.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/79852.shtml
英文地址,請注明出處:http://en.pswp.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 表格由以下…