前言

GUI(图形用户界面) 想必大家都不陌生,简单来说就是将代码变成可以交互式操作的界面。在Python中就提供了多个图形开发界面的库,比如 Tkinter wxPython 、 Jython 等,本文将使用Tkinter 来制作一个简单的快递查询软件,先来看看效果

为什么使用 Tkinter ? 因为Tkinter 是 Python 的 标准 GUI 库 , 只要安装好 Python 之后就能直接使用, 对于我们这样一个简单的小程序还是能应付自如。

好了,现在我们来分析应该如何制作,其实主要就是下面两个步骤:

  • Python爬取快递查询网站
  • 使用 Tkinter 制作界面

所以我将按照上面两项来说明制作过程。

爬取快递网站

在这一步,我们需要做的就是写一个函数,我们 给它一个快递单号就能将该单号的物流信息返回 , 首先说一下走过的坑,在一开始的思路就是找个快递查询的网站,然后抓一下包就能拿到我们需要的内容,结果一操作发现国内查快递的网站基本用的都是快递100的 API ,申请个API还挺麻烦的。不申请API直接爬的物流信息被各种加密。折腾半天终于找到一个手机端的网站可以使用。直接上代码

import requests
import bs4
import re
kuaidi = []
url='http://m.46644.com/express/result.php?typetxt=%D6%D0%CD%A8&type=zto&number=你的单号'
response = requests.get(url)
response.encoding = 'gb18030'
response = response.text
soup = bs4.BeautifulSoup(response,'html.parser',from_encoding="utf8")
for i in soup.findAll(name='div',attrs = {'class':'icontent'}):kuaidi.append(i.get_text())print(i.get_text())

这一段代码我们使用多很多次就不过多解读了,用 Requests请求 并使用 bs4提取 我们需要的信息,当然注意到这只是中通快递的查询链接

因此我们只需要再写一个函数来生成更多快递公司的查询链接就可以查询多家快递信息, 这样我们就完成了第一步: 提供一个单号,返回对应的物流信息

制作界面

在上一步,我们已经实现第一个功能:查询物流信息,现在要做的就是 整出一个界面 ,这个界面要有一个 文本输入框 、一个 按钮 和一个显示物流信息的区域,而这对于Tkinter来说也并不困难,比如三行代码即可生成一个页面

import tkinter as tk
root = tk.Tk()
root.mainloop()

当然这个界面中什么都没有,接下来就是对这个界面进行修改,比如先调整 大小和背景

import tkinter as tk
HEIGHT = 500
WIDTH = 600
root = tk.Tk()
canvas = tk.Canvas(root, height=HEIGHT, width=WIDTH)
canvas.pack()
background_image = tk.PhotoImage(file='/Users/liuhuanshuo/Desktop/bg1.png')
background_label = tk.Label(root, image=background_image)
background_label.place(relwidth=1, relheight=1)
root.mainloop()

接着我们用下面的代码添加按钮和输入框

frame = tk.Frame(root, bg='#80c1ff', bd=5)
frame.place(relx=0.5, rely=0.1, relwidth=0.75, relheight=0.1, anchor='n')entry = tk.Entry(frame, font=40)
entry.place(relwidth=0.65, relheight=1)button = tk.Button(frame, text="查快递", font=40, command=lambda: kuaidi(entry.get()))
button.place(relx=0.7, relheight=1, relwidth=0.3)

最后再添加 亿 点细节就差不多了!

可以看到,仅用了 不到30行代码 ,我们就成功做出来界面,而这些代码的详细参数设置都可以查阅官方文档,这里就不在赘述,最后只要结合我们上一步的爬取物流信息的代码就大功告成!

结束语

回顾上面整个过程,好像也没有用到特别复杂的工具,如果自己独立敲一遍我想应该会有所收获,并且基于这个例子可以实现 更多的功能 ,比如添加其他按钮来实现更多功能,或者 将查快递改为查天气、查单词等 ,这些就留给你们了,拜拜~

需要获取源码的小伙伴加群“前言

GUI(图形用户界面) 想必大家都不陌生,简单来说就是将代码变成可以交互式操作的界面。在Python中就提供了多个图形开发界面的库,比如 Tkinter wxPython 、 Jython 等,本文将使用Tkinter 来制作一个简单的快递查询软件,先来看看效果

为什么使用 Tkinter ? 因为Tkinter 是 Python 的 标准 GUI 库 , 只要安装好 Python 之后就能直接使用, 对于我们这样一个简单的小程序还是能应付自如。

好了,现在我们来分析应该如何制作,其实主要就是下面两个步骤:

  • Python爬取快递查询网站
  • 使用 Tkinter 制作界面

所以我将按照上面两项来说明制作过程。

爬取快递网站

在这一步,我们需要做的就是写一个函数,我们 给它一个快递单号就能将该单号的物流信息返回 , 首先说一下走过的坑,在一开始的思路就是找个快递查询的网站,然后抓一下包就能拿到我们需要的内容,结果一操作发现国内查快递的网站基本用的都是快递100的 API ,申请个API还挺麻烦的。不申请API直接爬的物流信息被各种加密。折腾半天终于找到一个手机端的网站可以使用。直接上代码

import requests
import bs4
import re
kuaidi = []
url='http://m.46644.com/express/result.php?typetxt=%D6%D0%CD%A8&type=zto&number=你的单号'
response = requests.get(url)
response.encoding = 'gb18030'
response = response.text
soup = bs4.BeautifulSoup(response,'html.parser',from_encoding="utf8")
for i in soup.findAll(name='div',attrs = {'class':'icontent'}):kuaidi.append(i.get_text())print(i.get_text())

这一段代码我们使用多很多次就不过多解读了,用 Requests请求 并使用 bs4提取 我们需要的信息,当然注意到这只是中通快递的查询链接

因此我们只需要再写一个函数来生成更多快递公司的查询链接就可以查询多家快递信息, 这样我们就完成了第一步: 提供一个单号,返回对应的物流信息

制作界面

在上一步,我们已经实现第一个功能:查询物流信息,现在要做的就是 整出一个界面 ,这个界面要有一个 文本输入框 、一个 按钮 和一个显示物流信息的区域,而这对于Tkinter来说也并不困难,比如三行代码即可生成一个页面

import tkinter as tk
root = tk.Tk()
root.mainloop()

当然这个界面中什么都没有,接下来就是对这个界面进行修改,比如先调整 大小和背景

import tkinter as tk
HEIGHT = 500
WIDTH = 600
root = tk.Tk()
canvas = tk.Canvas(root, height=HEIGHT, width=WIDTH)
canvas.pack()
background_image = tk.PhotoImage(file='/Users/liuhuanshuo/Desktop/bg1.png')
background_label = tk.Label(root, image=background_image)
background_label.place(relwidth=1, relheight=1)
root.mainloop()

接着我们用下面的代码添加按钮和输入框

frame = tk.Frame(root, bg='#80c1ff', bd=5)
frame.place(relx=0.5, rely=0.1, relwidth=0.75, relheight=0.1, anchor='n')entry = tk.Entry(frame, font=40)
entry.place(relwidth=0.65, relheight=1)button = tk.Button(frame, text="查快递", font=40, command=lambda: kuaidi(entry.get()))
button.place(relx=0.7, relheight=1, relwidth=0.3)

最后再添加 亿 点细节就差不多了!

可以看到,仅用了 不到30行代码 ,我们就成功做出来界面,而这些代码的详细参数设置都可以查阅官方文档,这里就不在赘述,最后只要结合我们上一步的爬取物流信息的代码就大功告成!

结束语

回顾上面整个过程,好像也没有用到特别复杂的工具,如果自己独立敲一遍我想应该会有所收获,并且基于这个例子可以实现 更多的功能 ,比如添加其他按钮来实现更多功能,或者 将查快递改为查天气、查单词等 ,这些就留给你们了,拜拜~

获取源码加群哦:850591259

PythonGUI编程!使用Tkinter制作快递查询软件!是不是很实用呢!相关推荐

  1. PythonGUI编程|使用Tkinter制作快递查询软件

    前言 GUI(图形用户界面) 想必大家都不陌生,简单来说就是将代码变成可以交互式操作的界面.在Python中就提供了多个图形开发界面的库,比如 Tkinter . wxPython . Jython  ...

  2. python tkinter获取屏幕大小_Python GUI编程|使用Tkinter制作快递查询软件

    GUI(图形用户界面)想必大家都不陌生,简单来说就是将代码变成可以交互式操作的界面.在Python中就提供了多个图形开发界面的库,比如Tkinter.wxPython.Jython等,本文将使用Tki ...

  3. python制作快递查询小软件

    用python制作快递查询小软件,使用Pycharm+Python+PyQt5 快递查询实现思路 通过对网址http://www.kuaidi100.com/ 抓包,发现通过self.url1 = r ...

  4. 查python的软件_[Python实战]Python制作天气查询软件

    以前,公众号分享了如何使用 PyQt5 制作猜数游戏和计时器,这一次,我们继续学习:如何使用 PyQt5 制作天气查询软件. 开发环境Python3 PyQt5 requests 准备工作 首先要获取 ...

  5. 查python的软件_Python制作天气查询软件【python实战必学】

    在这里插入图片描述 以前,公众号分享了如何使用 PyQt5 制作猜数游戏和计时器,这一次,我们继续学习:如何使用 PyQt5 制作天气查询软件. 如需获取源代码和 exe 文件,请在微信公众号Pyth ...

  6. python天气查询运行过程_菜鸟玩Python|制作天气查询软件

    原标题:菜鸟玩Python|制作天气查询软件 开发环境 Python3 PyQt5 requests 准备工作 首先要获取不同城市对应的天气代码,可以从 https://www.heweather.c ...

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

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

  8. python快递费用计算_Python制作快递查询系统,来感受到了Python的强大!

    原标题:Python制作快递查询系统,来感受到了Python的强大! 导语 今天来做个简答的python案例,利用Python制作一个简单的快递查询系统. 让我们愉快地开始吧~ 开发工具 Python ...

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

    Python编程使用tkinter模块实现计算器软件完整代码示例 来源:中文源码网    浏览: 次    日期:2018年9月2日 Python编程使用tkinter模块实现计算器软件完整代码示例 ...

最新文章

  1. 编写EasyCluster V2.0 Portal主界面时的HTML心得(NOWRAP)
  2. 【思维训练】刺激战场极寒模式下带妹吃鸡的【兵法思维】和【统计学思维】
  3. 05-if和switch的简单比较
  4. 独立站大卖家都在用的运营技巧?
  5. 深入理解加密、解密、数字签名和数字证书
  6. 海思Hi3518EV200 SDK源码分析笔记
  7. QT界面窗口的显示和隐藏,关闭
  8. Python-Selennium之爬虫实战--链家二手房爬虫项目
  9. 家庭版茄汁味锅包肉的做法
  10. 手机怎么设置腾达路由器后显示远端服务器,怎么用手机设置腾达(Tenda)路由器wifi密码?...
  11. python开三次方_用python计算三次方根
  12. springboot整合阿里云短信验证(无需签名和模板,通过阿里云api测试实现短信验证)
  13. 设备树学习(二十三、aliases节点分析)
  14. 微信小程序搜索功能系列 一套全
  15. 【计算机毕业设计】015健身房管理系统设计与实现
  16. 用计算机计算下面各题,四下计算机练习题汇总
  17. springcloud gateway断路器抛的错default failed and fallback disabled
  18. 毕业设计 : 基于深度学习的口罩佩戴检测【全网最详细】 - opencv 卷积神经网络 机器视觉 深度学习
  19. 直播+时尚跨界掀起新玩法,传统时装行业变革在即
  20. python gdal 重采样_Python遥感影像重采样

热门文章

  1. 天源财富:格芯宣布与PsiQuantum合作打造世界首台全尺寸量子计算机
  2. H5企业网站模板-蓝绿过渡色功能菜单齐全
  3. css动画唯美背景,小码哥-利用CSS3渐变实现唯美背景图
  4. 你不是一个人在战斗——软件项目团队模型
  5. 电赛分几种_参加电赛需要具备哪些知识呢?
  6. HTML页面制作标签学习
  7. Deep Multimodal Subspace Clustering Networks
  8. 加密软甲安装中间遇到问题【EZSocket】卸载后未重启电脑,再安装后加密解密都不生效,看不到加密文件时候
  9. AutoCAD Civil 3D-创建道路模型(3 有关道路的逻辑目标)
  10. 浅谈简单使用CentOS7防火墙及开放端口