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

栏目: IT技术 · 发布时间: 5年前

前言

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

PythonGUI编程|使用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提取 我们需要的信息,当然注意到这只是中通快递的查询链接 PythonGUI编程|使用Tkinter制作快递查询软件

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

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

制作界面

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

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

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

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

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()

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

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

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)

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

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

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

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

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

结束语

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

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

极致:互联网时代的产品设计

极致:互联网时代的产品设计

戴维•罗斯 / 中信出版集团 / 2016-6 / 49.00元

在不远的未来,日常物品将能够迅速理解我们的需求,改善我们的生活,并随处可见。为了实现这一预期,我们需要能够发现用户使用产品的场景,找到用户高频刚需痛点的产品设计者。 站在下一个转型发展的悬崖上,我们看到技术将更具人性。随着物联网的发展,我们习以为常的数百件日常物品:汽车、钱包、手表、雨伞甚至垃圾桶,都将回应我们的需求,了解我们,学习为我们思考。最先出现的智能硬件为什么是智能手环、无人驾驶汽车......一起来看看 《极致:互联网时代的产品设计》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

SHA 加密
SHA 加密

SHA 加密工具

html转js在线工具
html转js在线工具

html转js在线工具