Python实战 -- PySide6 制作天气查询软件

news2024/11/26 23:44:57

一、环境准备

开发环境:Python 3.9.2 pycharm PySide6

申请天气情况 API :https://console.amap.com/dev/key/app
在这里插入图片描述

designer 设计

ui 目录下 Weather.ui 转换为 Weather.py
在这里插入图片描述

结果显示

在这里插入图片描述

二、完整代码

import sys

from PySide6 import QtWidgets

import ui.Weather

from PySide6.QtWidgets import QApplication, QDialog

import requests


class Dialog(QtWidgets.QDialog):
    def __init__(self):
        super(Dialog, self).__init__()
        self.clearBtn = None
        self.myDlg = ui.Weather.Ui_Dialog()
        self.myDlg.setupUi(self)

    def queryWeather(self):
        cityName = self.myDlg.comboBox.currentText()
        cityCode = self.getCode(cityName)
        r = requests.get("https://restapi.amap.com/v3/weather/weatherInfo?key=6778d1f26467c63988b2a037903bbb21&city={}".format(
                cityCode))
       # r.encoding = 'utf-8'
        if r.status_code == 200:

            data = r.json()['lives'][0]

            weatherMsg = '城市:{}\n天气:{}\n温度:{}\n风向:{}\n风力:{}\n湿度:{}\n发布时间:{}\n'.format(

                data['city'],

                data['weather'],

                data['temperature'],

                data['winddirection'],

                data['windpower'],

                data['humidity'],

                data['reporttime'],

            )

        else:

            weatherMsg = '天气查询失败,请稍后再试!'

        self.myDlg.textEdit.setText(weatherMsg)

    def getCode(self, cityName):

        cityDict = {"陕西": "610000",

                    "北京": "110000",

                    "苏州": "320500",

                    "上海": "310000"}

        return cityDict.get(cityName, '101010100')

    def clearText(self):

        self.myDlg.textEdit.clear()




if __name__ == '__main__':
    myapp = QApplication(sys.argv)

    myDlg = Dialog()

    myDlg.show()

    myDlg.exec()

三、参考

https://zhuanlan.zhihu.com/p/60815507
链接:https://pan.baidu.com/s/15NOyb8FqPwuJVerRtsgzww
提取码:kwk4

https://zhuanlan.zhihu.com/p/446137829

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1393222.html

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

相关文章

安全牧场,保障优质奶源 追溯羊奶品质

安全牧场,保障优质奶源 追溯羊奶品质 近年来,人们对食品安全和健康越来越关注,而安全牧场的兴起正能够满足人们对优质奶源的需求。安全牧场以严格的品质监控和科学的管理,为消费者提供可追溯的高品质羊奶产品。本文小编羊大师将为…

机器学习算法理论:贝叶斯

贝叶斯定理对于机器学习来说是经典的概率模型之一,它基于先验信息和数据观测来得到目标变量的后验分布。具体来说,条件概率(也称为后验概率)描述的是事件A在另一个事件B已经发生的条件下的发生概率,公式表示为P(A|B)&a…

前端公共组件库优化

背景 前段时间入职了新公司后,做一些内部前端基建的工作,其中一个工作就是优化现有的frontend-common公共组件库。之前的组件库一直是以源码依赖的形式存在,即各个项目通过git submodule的方式将该仓库引入到各个项目中,作为一个…

Linux学习记录——사십삼 高级IO(4)--- Epoll型服务器(1)

文章目录 1、理解Epoll和对应接口2、简单实现 1、理解Epoll和对应接口 poll依然需要OS去遍历所有fd。一个进程去多个特定的文件中等待,只要有一个就绪,就使用select/poll系统调用,让操作系统把所有文件遍历一遍,哪些就绪就加上哪…

基于SURF算法的图像匹配

基础理论 2006年Herbert Bay提出了SURF算法,该算法是对SIFT算法的改进,不仅继承了SIFT算法的优点,而且比SIFT算法速度快。下面是SURF算法的步骤。 (1)建立积分图像 (2)构建尺度空间 &#x…

python使用Apache+mod_wsgi部署Flask

python使用Apachemod_wsgi部署Flask 一、安装python环境(V3.10.10)二、安装mod_wsgi三、安装Apache1、下载2、解压3、配置 四、安装项目依赖五、启动六、基于多端口部署多个flask项目 一、安装python环境(V3.10.10) 安装时勾选&q…

Elasticsearch:将数据从 Snowflake 摄取到 Elasticsearch

作者:来自 Elastic Ashish Tiwari 为了利用 Elasticsearch 提供的强大搜索功能,许多企业在 Elasticsearch 中保留可搜索数据的副本。 Elasticsearch 是一种经过验证的技术,适用于传统文本搜索以及用于语义搜索用例的向量搜索。 Elasticsearch…

C#,入门教程(38)——大型工程软件中类(class)修饰词partial的使用方法

上一篇: C#,入门教程(37)——优秀程序员的修炼之道https://blog.csdn.net/beijinghorn/article/details/125011644 一、大型(工程应用)软件倚重 partial 先说说大型(工程应用)软件对源代码的文件及函数“…

【白皮书下载】GPU计算在汽车中的应用

驾驶舱域控制器 (CDC) 是汽车 GPU 的传统应用领域。在这里,它可以驱动仪表板上的图形,与车辆保持高度响应和直观的用户界面,甚至为乘客提供游戏体验。随着车辆屏幕数量的增加和分辨率的提高,对汽车 GPU 在 CDC 中进行图形处理的需…

基础+常用的数据结构

基础 java基础 JDK 和 JRE JDK,它是功能齐全的 Java SDK,是提供给开发者使用,能够创建和编译 Java 程序的开发套件。它包含了 JRE,同时还包含了编译 java 源码的编译器 javac 以及一些其他工具比如 javadoc(文档注释工具&#…

贪心算法-活动安排-最详细注释解析

贪心算法-活动安排-最详细注释解析 题目: 学校在最近几天有n个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使用。由于有些活动时间上有冲突,学校办公室人员只好让一些活动放弃使用礼堂而使用…

Ubuntu20.4 Mono C# gtk 编程习练笔记(二)

界面设计习练后,下面写一些程序设计心得。 程序结构 先看一下程序总体结构,先在program.cs中找到main入口,在命名空间下是MainClass类,Main函数进入后首先建立应用程序环境 Application.Init,然后对MainWindow进行实…

2.mac 安装 Visual studio code 整合go开发

目录 概述前置下载关键命令整合C#go配置go插件常见的go工具安装测试 结束 概述 mac 安装 Visual studio code 整合go开发 相关前置文章 go安装及相关配置 文章 前置 官网速递 mac 系统高于等于 10.15.x 可以直接最新版本 我的系统是 10.13 ,所以只能安装此版本…

JRTP实时音视频传输(2)-使用TCP通信的案例

1.创建自己的demo 先将example1拷贝为myclienttcp.cpp和myservertcp.cpp cp example1.cpp myclienttcp.cpp cp example1.cpp myservertcp.cpp 改写jrtplib/JRTPLIB/examples/CMakeLists.txt,添加myclienttcp和myservertcp编译 重新生成Makefile并编译 sudo cmak…

powershell脚本 判断NLB是否已安装

bat脚本:456.bat REM REM 解决下载的时候字符乱码的问题 chcp 65001 echo offREM 管理员运行powershell脚本 PUSHD %~DP0 & cd /d "%~dp0" %1 %2 mshta vbscript:createobject("shell.application").shellexecute("%~s0","…

白山云基于StarRocks数据库构建湖仓一体数仓的实践

背景 随着每天万亿级别的业务数据流向数据湖,数据湖的弊端也逐渐凸显出来,例如: 数据入湖时效性差:数据湖主要依赖于离线批量计算,通常不支持实时数据更新,因此无法保证数据的强一致性,造成数…

<软考高项备考>《论文专题 - 73 风险管理(5)》

5 过程4-实施定量风险分析 5.1 问题 4W1H过程做什么是就已识别的单个项目风险和不确定性的其他来源对整体项目目标的影响进行定量分析的过程。作用:1、量化整体项目风险最大可能性;2、提供额外的定量风险信息,以支持风险应对规划。为什么做了解风险对项目整体目标…

【STM32调试】寄存器调试不良问题记录持续版

STM32寄存器调试不良问题记录 NVIC(内嵌的中断向量控制器)EXTI(外部中断/事件) 记录一些stm32调试过程中:不易被理解、存在使用误区、不清不楚、是坑、使用常识等方面的一些记录。本记录只包含stm32的内核以及外设等寄…

node.js(express.js)+mysql实现注册功能

文章目录 实现步骤一、获取客户端提交到服务器的用户信息,对表单中的数据,进行合法性的效验 代码如下:二、检测用户名是否被占用三、对密码进行加密四、插入新用户(完整代码)总结 实现步骤 一、获取客户端提交到服务器的用户信息…

社交商业革命:Facebook Shops的崛起

近年来,社交媒体逐渐演变为不仅仅是社交的平台,更是商业活动的重要场所。在这个潮流的浪潮中,Facebook Shops的崛起正引领着一场社交商业的革命,为企业和消费者带来了全新的体验。 点击添加图片描述(最多60个字&#x…