智能车载系统#天气预报
天气预报可以选择城市搜索近五天的天气暂时无法通过城市编码搜索。参考博客https://blog.csdn.net/m0_57730390/article/details/125751223?spm1001.2014.3001.5502一、ui界面部分二、代码实现部分功能1weather.h#ifndef WEATHER_H #define WEATHER_H #include QMainWindow #include QWidget #include QLabel #include QNetworkAccessManager #include QNetworkRequest #include QNetworkReply #include QLocale #include QTime #include QDateTime #include QString namespace Ui { class Weather; } class Weather : public QWidget { Q_OBJECT public: explicit Weather(QWidget *parent nullptr); ~Weather(); private slots: void on_getBt_clicked(); void read_data(QNetworkReply *reply); void on_weather_exit_clicked(); private: Ui::Weather *ui; QNetworkAccessManager *manager; signals: void weather_show_main(); }; #endif // WEATHER_H2weather.cpp#include weather.h #include ui_weather.h #include QJsonDocument #include QJsonObject #include QJsonArray #include QJsonValue #include QJsonParseError /* * 小鑫说明 * 会报警告libpng warning: iCCP: known incorrect sRGB profile不影响使用所以并未进行处理 * 产生原因weatherWidget中所用png图片 * 解决办法 https://www.cnblogs.com/wxh-53919/p/10071560.html * https://blog.csdn.net/qq_37924224/article/details/119181028 */ Weather::Weather(QWidget *parent) : QWidget(parent), ui(new Ui::Weather) { ui-setupUi(this); // 时间显示 QLocale locale QLocale::Chinese;//指定中文显示 QDateTime datetime QDateTime::currentDateTime(); QString str1 datetime.toString(yyyy-MM-dd); QString str2 locale.toString(datetime,dddd); ui-label_time-setText(str1\nstr2); //关联请求完毕信号finished(QNetworkReply* ) manager new QNetworkAccessManager(); QString num ui-numEdit-text(); // 初始城市为广州 // 接入网站 QUrl url(http://t.weather.sojson.com/api/weather/city/ num); //创建一个请求对象 QNetworkRequest request(url); //发送获取消息请求,manager完成请求跳转槽函数读取数据 reply manager-get(request); connect(reply, QIODevice::readyRead, this, Weather::read_data); // connect(manager, QNetworkAccessManager::finished,this, Weather::read_data); } Weather::~Weather() { delete ui; } void Weather::on_getBt_clicked() { QString place ui-placeBox-currentText(); QString num; // 城市气象代码表 if(place襄阳) { num 101200201; } if(place 武汉) { num101200101; } if(place北京) { num 101010100; } if(place 广州) { num101280101; } ui-numEdit-setText(num); //代码表补全显示 // 接入网站 QUrl url(http://t.weather.sojson.com/api/weather/city/ num); //创建一个请求对象 QNetworkRequest request(url); //发送获取消息请求,manager完成请求跳转槽函数读取数据 replymanager-get(request); connect(reply, QIODevice::readyRead, this, Weather::read_data); } void Weather::read_data() { //QNetworkReply一旦从对象中读取数据它保留这些数据。 QByteArray array reply-readAll();//读取所有数据 //json解析 QJsonParseError error; QJsonDocument doc QJsonDocument::fromJson(array, error); //校验格式是否有错 if(error.error ! QJsonParseError::NoError) { qDebug()json error; return ; } QJsonObject obj doc.object(); QJsonObject weatherObj obj.value(data).toObject(); QJsonArray forecast weatherObj.value(forecast).toArray(); //未来四天 QLabel *week[4]; week[0] ui-label_week1; week[1] ui-label_week1_2; week[2] ui-label_week1_3; week[3] ui-label_week1_4; QLabel *date[4]; date[0] ui-label_date1; date[1] ui-label_date2; date[2] ui-label_date3; date[3] ui-label_date4; // 修改5天的天气情况 QLabel *hw[5]; // 温度 hw[0] ui-label_hw; hw[1] ui-label_hw1; hw[2] ui-label_hw2; hw[3] ui-label_hw3; hw[4] ui-label_hw4; QLabel *type[5]; // 天气类型 type[0] ui-label_type; type[1] ui-label_type1; type[2] ui-label_type2; type[3] ui-label_type3; type[4] ui-label_type4; QLabel *fxfl[5]; // 风力 fxfl[0] ui-label_fxfl; fxfl[1] ui-label_fxfl1; fxfl[2] ui-label_fxfl2; fxfl[3] ui-label_fxfl3; fxfl[4] ui-label_fxfl4; QLabel *aqi[5]; // 空气质量 aqi[0] ui-label_aqi; aqi[1] ui-label_aqi1; aqi[2] ui-label_aqi2; aqi[3] ui-label_aqi3; aqi[4] ui-label_aqi4; QLabel *tyim[5]; // 天气图片 tyim[0] ui-label_im; tyim[1] ui-label_im1; tyim[2] ui-label_im2; tyim[3] ui-label_im3; tyim[4] ui-label_im4; for(int i1; i5; i) // 修改未来天的时间 { QJsonObject o forecast.at(i).toObject(); // qDebug()时间:o.value(ymd).toString(); // qDebug()最高温度:o.value(high).toString(); // qDebug()最低温度:o.value(low).toString(); // qDebug()week:o.value(week).toString(); // qDebug()空气质量o.value(aqi).toInt(); // qDebug()fx:o.value(fx).toString(); // 风向 // qDebug()flo.value(fl).toString(); // 风力 // qDebug()type:o.value(type).toString(); // qDebug()-----------------------; week[i-1]-setText(o.value(week).toString()); date[i-1]-setText(o.value(ymd).toString()); } for(int i0; i5; i) { QJsonObject o forecast.at(i).toObject(); hw[i]-setText(o.value(high).toString().mid(3,2) ~ o.value(low).toString().mid(3,2) ℃); QString ty o.value(type).toString(); type[i]-setText(ty); if(ty.contains(雨)) { if(ty.contains(中)) { tyim[i]-setStyleSheet(border-image: url(:/images/rain_mid.png);); } else if(ty.contains(小)) { tyim[i]-setStyleSheet(border-image: url(:/images/rain_s.png);); } else { tyim[i]-setStyleSheet(border-image: url(:/images/rain_big.png);); } } else if(ty.contains(晴)) { tyim[i]-setStyleSheet(border-image: url(:/images/sun.png);); } else if(ty.contains(云)) { tyim[i]-setStyleSheet(border-image: url(:/images/cloudy1.png);); } else if(ty.contains(阴)) { tyim[i]-setStyleSheet(border-image: url(:/images/cloudy.png);); } else if(ty.contains(雪)) { if(ty.contains(中)) { tyim[i]-setStyleSheet(border-image: url(:/images/snow_mid.png);); } else if(ty.contains(小)) { tyim[i]-setStyleSheet(border-image: url(:/images/snow_s.png);); } else { tyim[i]-setStyleSheet(border-image: url(:/images/snow.png);); } } fxfl[i]-setText(o.value(fx).toString() o.value(fl).toString()); int aqi1 o.value(aqi).toInt(); if(aqi1 50) { aqi[i]-setText(QString::number(aqi1) 优); } else if(aqi150 aqi1 100) { aqi[i]-setText(QString::number(aqi1) 中); } else { aqi[i]-setText(QString::number(aqi1) 差); } } } void Weather::on_weather_exit_clicked() { this-close(); emit weather_show_main(); }三、最终界面

相关新闻

PHP网约车H5源码改造指南:路由重构、状态机与微信V3支付落地

PHP网约车H5源码改造指南:路由重构、状态机与微信V3支付落地

简介:这是一套基于PHP开发的H5网约车平台完整源码,面向Web全栈开发者、毕业设计学生及中小型出行类项目创业者,提供乘客端与司机端双角色功能闭环,解决在线叫车、订单调度、实时定位、在线支付与服务评价等核心业务场景。资源共20…

2026/10/4 1:41:27 阅读更多 →
Universal Ctags 解析 reStructuredText 代码块:从 RST 文档中提取嵌入 C 代码标签的完整实战

Universal Ctags 解析 reStructuredText 代码块:从 RST 文档中提取嵌入 C 代码标签的完整实战

开发工具CLI 【免费下载链接】ctags A maintained ctags implementation 项目地址: https://gitcode.com/gh_mirrors/ct/ctags 点击查看 免费下载 reStructuredText(reST)是 Python 生态与 Sphinx 文档系统广泛采用的标记语言,其…

2026/10/4 1:41:27 阅读更多 →
微信小游戏 wasm 水印插件:Unity WebGL 转换小游戏的代码溯源防护指南

微信小游戏 wasm 水印插件:Unity WebGL 转换小游戏的代码溯源防护指南

游戏开发移动开发WebAssembly 【免费下载链接】minigame-unity-webgl-transform 微信小游戏Unity引擎适配器文档。 项目地址: https://gitcode.com/GitHub_Trending/mi/minigame-unity-webgl-transform 点击查看 免费下载 在微信小游戏生态中,Unity 游戏…

2026/10/4 1:41:27 阅读更多 →

最新新闻

PLUS模型实战指南:土地利用变化模拟从数据到精度验证

PLUS模型实战指南:土地利用变化模拟从数据到精度验证

手头有两期土地利用数据,想产出未来十年的土地利用变化模拟图,放在五年前大概会被人推荐CA-Markov或者FLUS。但最近这几年,越来越多论文和课题转向了PLUS模型。原因不复杂:PLUS把“扩张规则学习”和“斑块生成”拆成两个独立模块&…

2026/10/4 2:37:08 阅读更多 →
Warp SSH 补全的远程命令执行:基于 RemoteServer 长驻进程的 RunCommand 流水线设计

Warp SSH 补全的远程命令执行:基于 RemoteServer 长驻进程的 RunCommand 流水线设计

桌面应用开发者工具人工智能AI 应用AI Agent代码智能体 【免费下载链接】warp Warp is an agentic development environment, born out of the terminal. 项目地址: https://gitcode.com/GitHub_Trending/wa/warp 点击查看 免费下载 导读 当用户在 Warp 中 SSH 登…

2026/10/4 2:37:08 阅读更多 →
Triton源码解析:combine_fn到LLVM/PTX的归约

Triton源码解析:combine_fn到LLVM/PTX的归约

如果你写过几行 Triton 算子,肯定绕不开tl.reduce。很多教程会把 reduce 讲成“向量求和的一行 API”,却没讲它背后那个叫 combine 的东西。我第一次啃 Triton 源码时,就是被这个名字勾住的:源码里没有 magic,只有一层…

2026/10/4 2:37:07 阅读更多 →
Three.js游戏上线前必过:threejs-qa-release的自动试玩、Canvas像素检测与视觉回归全解

Three.js游戏上线前必过:threejs-qa-release的自动试玩、Canvas像素检测与视觉回归全解

Three.js游戏上线前必过:threejs-qa-release的自动试玩、Canvas像素检测与视觉回归全解 【免费下载链接】threejs-game-skills Agent skills for building playable, polished Three.js browser games with gameplay, AAA-style graphics, UI, QA, and optional AI-…

2026/10/4 2:37:07 阅读更多 →
dufu:中文文案去掉机器腔,怎样保留原意?

dufu:中文文案去掉机器腔,怎样保留原意?

dufu:中文文案去掉机器腔,怎样保留原意? dufu(杜甫)是一套中文润色 Skill,供能读取 SKILL.md 的 Agent 使用。它帮助检查套话、调整表达,并要求保留事实、数字和原意;附带的检测脚本…

2026/10/4 2:37:07 阅读更多 →
QT5项目源码Windows编译指南:从环境配置到避坑实践

QT5项目源码Windows编译指南:从环境配置到避坑实践

简介:这是一份面向初学者的QT项目源码,以经典休闲游戏“捕鱼达人”为完整案例,演示如何基于QT框架与C语言在Android移动平台实现游戏开发的全过程。包内共163个文件,包体大小为2.5MB;其中149张PNG图片和3张JPG背景图构…

2026/10/4 2:36:07 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →