PythonGUI编程|使用Tkinter制作快递查询软件
前言
GUI(圖形用戶界面)想必大家都不陌生,簡單來說就是將代碼變成可以交互式操作的界面。在Python中就提供了多個圖形開發(fā)界面的庫,比如Tkinter、wxPython、Jython等,本文將使用Tkinter來制作一個簡單的快遞查詢軟件,先來看看效果
為什么使用Tkinter?因為Tkinter 是 Python 的標準 GUI 庫,只要安裝好 Python 之后就能直接使用,對于我們這樣一個簡單的小程序還是能應付自如。
好了,現(xiàn)在我們來分析應該如何制作,其實主要就是下面兩個步驟:
Python爬取快遞查詢網站
使用Tkinter制作界面
所以我將按照上面兩項來說明制作過程。
爬取快遞網站
在這一步,我們需要做的就是寫一個函數(shù),我們給它一個快遞單號就能將該單號的物流信息返回,首先說一下走過的坑,在一開始的思路就是找個快遞查詢的網站,然后抓一下包就能拿到我們需要的內容,結果一操作發(fā)現(xiàn)國內查快遞的網站基本用的都是快遞100的API,申請個API還挺麻煩的。不申請API直接爬的物流信息被各種加密。折騰半天終于找到一個手機端的網站可以使用。直接上代碼
importrequests
importbs4
importre
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")
foriinsoup.findAll(name='div',attrs={'class':'icontent'}):
kuaidi.append(i.get_text())
print(i.get_text())
這一段代碼我們使用多很多次就不過多解讀了,用Requests請求并使用bs4提取我們需要的信息,當然注意到這只是中通快遞的查詢鏈接
因此我們只需要再寫一個函數(shù)來生成更多快遞公司的查詢鏈接就可以查詢多家快遞信息,這樣我們就完成了第一步:提供一個單號,返回對應的物流信息
制作界面
在上一步,我們已經實現(xiàn)第一個功能:查詢物流信息,現(xiàn)在要做的就是整出一個界面,這個界面要有一個文本輸入框、一個按鈕和一個顯示物流信息的區(qū)域,而這對于Tkinter來說也并不困難,比如三行代碼即可生成一個頁面
importtkinterastk
root=tk.Tk()
root.mainloop()
當然這個界面中什么都沒有,接下來就是對這個界面進行修改,比如先調整大小和背景
importtkinterastk
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)
最后再添加億點細節(jié)就差不多了!
可以看到,僅用了不到30行代碼,我們就成功做出來界面,而這些代碼的詳細參數(shù)設置都可以查閱官方文檔,這里就不在贅述,最后只要結合我們上一步的爬取物流信息的代碼就大功告成!
結束語
回顧上面整個過程,好像也沒有用到特別復雜的工具,如果自己獨立敲一遍我想應該會有所收獲,并且基于這個例子可以實現(xiàn)更多的功能,比如添加其他按鈕來實現(xiàn)更多功能,或者將查快遞改為查天氣、查單詞等,這些就留給你們了,拜拜~
總結
以上是生活随笔為你收集整理的PythonGUI编程|使用Tkinter制作快递查询软件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: poj2480(利用欧拉函数的积性求解)
- 下一篇: php审计学习:xdcms2.0.8注入