通过做这个软件,里面有很多知识点,现在直接上代码好了

"""妙啊天气预报桌面系统"""
#导入相关模块
import io
import tkinter
from PIL import Image,ImageTk
from tkinter import messagebox
import requestsdef resize( w_box, h_box, pil_image):"""调整图片大小,适应窗体大小""""""arg:: w_box:new width h_box:new height pil_image:img"""w, h = pil_image.size #获取图像的原始大小f1 = 1.0*w_box/wf2 = 1.0*h_box/hfactor = min([f1, f2])width = int(w*factor)height = int(h*factor)return pil_image.resize((width, height), Image.ANTIALIAS)def cherishCallBack():"""祝福语"""messagebox.showinfo("欢迎小娇贵","你好啊,美女,早上好!")def searchWeather():"""查询天气"""if txt_city.get() == '':messagebox.showinfo("提示","你要先输入城市哦~~小娇贵")returninputcity = txt_city.get()  #得到输入框的文字url = "http://api.map.baidu.com/telematics/v3/weather?location=%s&output=json&ak=TueGDhCvwI6fOrQnLM0qmXxY9N0OkOiQ&callback=?"%inputcity   #完善urlrespnse = requests.get(url) #访问并接收数据weather_result = respnse.json() #返回json数据#解析数据curdate ="当前日期:" + weather_result['date']  #得到当前日期weather_detail = weather_result['results']basicdata = weather_detail[0]city = "城市:" + basicdata['currentCity']  #得到当前城市pm = "当前pm:" + basicdata['pm25']   #得到pm2.5数值result1 = weather_detail[0]weather_data = result1['weather_data']data = weather_data[0]wind = "今日风向:" + data['wind']      #得到风向weather = "天气状况:" + data['weather']     #得到天气tempdata =data['temperature']tempmax = tempdata[0:2] #得到最高温度tempmin = tempdata[5:7] #得到最低温度temperature = "当前温度:" + data['temperature']  #得到温度weather_data_list = [curdate,city,pm,temperature,wind,weather]  #将这些信息放进list里面tmpmax = int(tempmax)tmpmin = int(tempmin)if 20 < tmpmax <30 and 15 <tmpmin < 20:tip = "tip:今天很舒服~ 不冷"else:tip = "tip:今天冷了,多穿衣服啊"#将内容显示在窗体上weatherlistbox = tkinter.Listbox(root,height=len(weather_data_list) + 1,SelectionMode=None)i = 0for item in weather_data_list:weatherlistbox.insert(i,item)i = i + 1weatherlistbox.insert(6,tip)weatherlistbox.place(x = 250 ,y = 220)#初始化窗体
root = tkinter.Tk()
root.geometry("600x500") #设置窗口大小
root.resizable(width=False,height=False)#设置不可拉伸
root.title("妙啊专属天气预报")#设置标题#添加背景图片
canvas = tkinter.Canvas(root,width = 600,height = 500,bg='white') #设置canvas
pil_image = Image.open('background.jpg') #打开背景图片
pil_image_resize = resize(600,500,pil_image) #将它放大保存
im = ImageTk.PhotoImage(pil_image_resize)
canvas.create_image(300,250,image = im) #将图片加载到canvas来
canvas.place(x=0,y=0,width=600,height=500)#放到屏幕当中#添加按钮:
btn_welcome = tkinter.Button(text="点我看看",command = cherishCallBack)
btn_welcome.place(x = 270,y = 30, width = 60, height = 30)
btn_search = tkinter.Button(text="查询一下天气咯",command = searchWeather)
btn_search.place(x = 420,y = 150, width = 90, height = 30)#添加文字:
lbl_welcome = tkinter.Label(root,text="欢迎来到这儿!") #label使用方法
lbl_welcome.place(x = 260,y = 90,width = 80,height = 30)
lbl_weather = tkinter.Label(root,text="请输入你的城市:")
lbl_weather.place(x = 60,y = 150,width = 100,height = 30)#添加文本框
txt_city = tkinter.Entry(root)
txt_city.place(x = 250,y = 150,width = 100,height = 30)root.mainloop()

运行效果:

这个一整个下来能复习到很多知识点的

Python--tkinter迷你天气预报软件(11.8)相关推荐

  1. Python Tkinter 学习成果:点歌软件music

    笔者工作业余时间也没什么爱好,社交圈子也小,主要娱乐就是背着自己带电瓶的卖唱音响到住地附近找个人多的位置唱唱KtV. 硬件上点歌就用笔记本电脑,歌曲都是网上下载的mkv格式的含有两个音轨的视频.因此点 ...

  2. 图片坐标提取软件/图片坐标点和像素点颜色提取软件/图片坐标获取工具/Python图片坐标获取源码/图片像素坐标获取软件/python tkinter 图片显示(完全开源)

    该软件使用python写的,可以提取像素点的坐标还有也能获取像素点的16进制数据RGB565和RGB888(RGB888仅最新的源码才支持),可以单点坐标也可以按键坐标,甚至可以使用简单的左右键配合使 ...

  3. python tkinter计算器实例_Python编程使用tkinter模块实现计算器软件完整代码示例

    Python 提供了多个图形开发界面的库.Tkinter就是其中之一. Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数 ...

  4. 如何使用Python tkinter 设计软件登录界面

    如何使用Python tkinter 设计登录界面 文章目录 前言 一.建立主窗口 二.建立子控件 1.Label标签控件与Entry输入控件 2.按钮Button 仅供交流学习禁止转载的声明 前言 ...

  5. 怎样利用Python开发天气预报软件,这份教程查收一下

    今天要分享的是怎样利用Python开发天气预报软件,那话不多说,马上开始-- 1.首先建一个文件weather.py 2.创建窗口与显示窗口 3.为窗口设置标题与大小,保存运行如下图: 4.接下来创建 ...

  6. 怎么用python制作随机点名软件_python用tkinter实现一个简易能进行随机点名的界面...

    今天学到Python 有一个名为 random 的内置模块,可用于生成随机数, 这个好玩~可以用来做为上课随机点名的程序了哈哈.. def main_cor(): import random i = ...

  7. python语言必背代码-Python入门必须知道的11个知识点

    Python被誉为全世界高效的编程语言,同时也被称作是"胶水语言",那它为何能如此受欢迎,下面我们就来说说Python入门学习的必备11个知识点,也就是它为何能够如此受欢迎的原因. ...

  8. python入门有基础-Python入门必须知道的11个知识点

    Python被誉为全世界高效的编程语言,同时也被称作是"胶水语言",那它为何能如此受欢迎,下面我们就来说说Python入门学习的必备11个知识点,也就是它为何能够如此受欢迎的原因. ...

  9. Python+tkinter设置Label字体、字号、样式、对齐方式、鼠标形状、响应鼠标事件

    推荐图书: <Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社,第16次印刷,清华大学出版社2019年度畅销图书 图书详情: 配套资源:用 ...

最新文章

  1. matlab正态分布
  2. BZOJ4196[Noi2015]软件包管理器——树链剖分+线段树
  3. string 换行符_Java 11 已发布,String 还能这样玩!
  4. 2017 Q1网络安全市场报告:未来5年,全球网络安全支出将超过1万亿美元
  5. 客户端父进程提前死亡
  6. 数据结构java版 大学_数据结构(Java版)
  7. 【渝粤题库】陕西师范大学300009 考古学概论
  8. Android提供两个常用的消息弹出框【Toast和Alert】
  9. SpringBoot 一个依赖搞定 session 共享,没有比这更简单的方案了!
  10. ASP.net C# EVal关于前端绑定
  11. linux专业的打谱软件下载,MuseScore 3.1 发布,音乐制谱软件
  12. Maven的安装与配置教程
  13. Delphi 法简介
  14. 微信小程序测试需要考虑哪些方面?一分钟快速掌握(小白必看!)
  15. python画球matplotlib_python – matplotlib中的球面坐标图
  16. java上传微博图床_php上传图片到微博图床
  17. SOJ4480 Easy Problem IV (并查集)
  18. 热图的基础绘制(Matlab代码实现)
  19. 关于BHO不能够正常运行的问题!
  20. OpenAI发布ChatGPT!手把手debug代码!

热门文章

  1. 超详细讲解,带你零基础入门 kafka!
  2. DOM JS实现动态表格
  3. fetch oracle 12c下载,十二、Oracle Fetch子句
  4. 前端数据库——WebSQL和IndexedDB
  5. 限制checkbox复选框的最大可选数量
  6. HDU 2814 斐波那契循环节 欧拉降幂
  7. PAT甲题题解-1059. Prime Factors (25)-素数筛选法
  8. AngularJS之页面跳转Route
  9. hdu4410(Boomerang)(计算几何)
  10. 修改MYSQL密码及权限