import tkinter
import requests
import json
from tkinter import * class FindLocation(object):
def __init__(self): # 创建主窗口,用于容纳其它组件
self.root = tkinter.Tk()
# 给主窗口设置标题内容
self.root.title("天气预报查询") # 创建一个输入框,并设置尺寸
self.city_input = tkinter.Entry(self.root,width=50)
self.city_input.grid(row=0,column=0) # 创建一个查询结果的按钮
self.result_button = tkinter.Button(self.root, command = self.find_position, text = "查询",bg='black',fg='white')
self.result_button.grid(row=0,column=1)
#清除按钮
self.clear = tkinter.Button(self.root,text="清除",command=self.inputclear,bg='black',fg='white')
self.clear.grid(row=0,column=2)
# 创建一个回显列表
self.display_info = tkinter.Listbox(self.root, width=50)
self.display_info.grid(row=1)
self.root.mainloop() def inputclear(self): self.city_input.delete(0,END) def gui_arrang(self):
"此方法暂时不用,和界面布局冲突"
self.cityLabel.pack()
self.city_input.pack()
self.result_button.pack()
self.display_info.pack()
self.clear.pack() def find_position(self):
self.city = self.city_input.get()
url = 'http://www.sojson.com/open/api/weather/json.shtml?city='+self.city
headers={"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0","Accept-Language":"zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3"} r = requests.get(url,headers = headers)
json = r.json()
try: date=json["date"] #今日日期
ganmao=json["data"]["ganmao"] #防感冒建议
high=json["data"]["forecast"][0]["high"] #最高温度
low=json["data"]["forecast"][0]["low"] #最低温度
types=json["data"]["forecast"][0]["type"] #天气类型
notice=json["data"]["forecast"][0]["notice"] #注意事项 the_weather_info = ["日期:"+str(date),"生活建议:"+str(ganmao),str(high),str(low), "天气类型:"+str(types), "注意事项:"+str(notice)]
except:
the_weather_info = ["如果您输入的城市无误,请稍后刷新!"] #清空回显列表可见部分,类似clear命令
for item in range(10):
self.display_info.insert(0,"") # 为回显列表赋值
for item in the_weather_info:
self.display_info.insert(0,item)
# 这里的返回值,没啥用,就是为了好看
#return the_weather_info def main():
# 初始化对象
FL = FindLocation()
#FL.gui_arrang()
# 主程序执行
#FL.mainloop()
pass if __name__ == "__main__":
main()

用tkinter实现的gui小工具的更多相关文章

  1. autoit获取ie浏览器简单操作网页(GUI小工具)

    需要稍稍熟悉一下autoti提供的语言, 我简单做了一个带GUI的小工具,实现根据IE标题点击页面内的LinkText 注意:使用时IE窗口是显示状态才可以获取到(可以在脚本中加入搜索IE句柄,将ie ...

  2. 删除UTF-8 BOM头的GUI小工具

    经常看到PHP群里有人因为UTF-8的BOM头出现这样那样的问题,给出的一个PHP删除BOM头的程序,新手也不会用,所以用wxpython写了一 个GUI,直接选择文件夹路径,就可以将该文件夹下所有指 ...

  3. Python+Tkinter 密保小工具

    上图 代码 核心 编解码方面 Tkinter界面更新 总结 昨天被一同学告知,网上的一个QQ密码库中有我的一条记录,当时我就震惊了,赶紧换了密码.当然了,这件事也给了我一个警示,那就是定期的更换自己的 ...

  4. python tkinter模块小工具界面

    代码 #-*-coding:utf-8-*- import os from tkinter import * root=Tk() root.title('小工具') #清空文本框内容 def clea ...

  5. 【python】【开源】使用Tkinter和matplotlib实时显示图像,打造属于自己的性能测试小工具

    在腾讯的perfdog工具还未公开时,当时需要查看内存使用情况等信息,就用python写了个小工具 为了提升开发效率,就直接借用了雷子开源的性能测试工具的布局,自己美化了一下,然后加入了实时显示数据的 ...

  6. 自己动手写一个U盘拷贝小工具

    这是五一期间,参照知乎上一篇的文章<十行代码--用python写一个USB病毒>写成的,最初只是单纯的想写成死循环,直到文件占满硬盘为止,第一个遇到的问题是,拷贝到硬盘之后,由于要无限次拷 ...

  7. 用 Python 制作一个艺术签名小工具,给自己设计一个优雅的签名

    生活中有很多场景都需要我们签字(签名),如果是一些不重要的场景,我们的签名好坏基本无所谓了,但如果是一些比较重要的场景,如果我们的签名比较差的话,就有可能给别人留下不太好的印象了,俗话说字如其人嘛,本 ...

  8. 利用 Python 写一个颜值测试小工具

    我们知道现在有一些利用照片来测试颜值的网站或软件,其实使用 Python 就可以实现这一功能,本文我们使用 Python 来写一个颜值测试小工具. 很多人学习python,不知道从何学起.很多人学习p ...

  9. 几款Git GUI客户端工具

    工欲善其事,必先利其器. 作为一名开发人员,你不可能不知道git,无论你是开发自己的开源项目还是和团队一起进行大规模产品的开发,git都已经是源代码管理工具的首选.当然,那些hardcore deve ...

随机推荐

  1. 【Windows】Windows服务管家婆之Service Control Manager

    Service Control Manager,服务控制管理器,人称SCM就是它!在Windows内核中,都可以看到她忙碌的身影,可以说是系统服务和驱动的管家婆了!     SCM管家婆起早贪黑,每次 ...

  2. 【bzoj2274】[Usaco2011 Feb]Generic Cow Protests dp+树状数组

    题目描述 Farmer John's N (1 <= N <= 100,000) cows are lined up in a row andnumbered 1..N. The cows ...

  3. Dom-直接 /间接选择器

    Dom:Document Object Model的缩写, 把html转换成了文本对象. 1. 直接选择器 1.直接查找 document.getElementById 根据ID获取一个标签 docu ...

  4. Linux查看PCIe版本及速率

    Linux查看PCIe版本及速率 PCIE有四种不同的规格,通过下图来了解下PCIE的其中2种规格 查看主板上的PCI插槽 # dmidecode | grep --color "PCI&q ...

  5. javascript中的this作用域详解

    javascript中的this作用域详解 Javascript中this的指向一直是困扰我很久的问题,在使用中出错的机率也非常大.在面向对象语言中,它代表了当前对象的一个引用,而在js中却经常让我觉 ...

  6. [NOIP2016 TG D2T3]愤怒的小鸟

    题目大意:有一架弹弓位于(0,0)处,每次可以用它向第一象限发射一只小鸟,飞行轨迹均为形如y=ax2+bxy=ax+bx2 y=ax2+bx的曲线,且必须满足a<0(即是下开口的) 平面的第一象 ...

  7. python----测试04.18

    # py4测试题 # 1.8 << 2 # 等于? 8转化成二进制:1000 向左移动2位: 0010 0000 转化成十进制:32 # 2.通过内置函数计算5除以2的余数 print(d ...

  8. SFM

    1.相机模型,内参数和外参数矩阵,相机标定: 2.极线约束和本征矩阵:特征点提取与匹配:提取到的特征点计算本征矩阵(五对以上的点)findEssentialMat(),需啊要点对,焦距参数,cx,cy ...

  9. C++智能指针 unique_ptr

    C++智能指针 unique_ptr unique_ptr 独占所指向的对象, 同一时刻只能有一个 unique_ptr 指向给定对象(通过禁止拷贝语义, 只有移动语义来实现), 定义于 memory ...

  10. POJ 2976 二分

    Dropping tests Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12515   Accepted: 4387 D ...