<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
前面我們已經詳細的介紹了,怎麼使用Tkinter建立屬於自己的視窗介面了。整體佈局呢我們已經搭建起來,唯一沒有實現的一個步驟就是,使用者每輸入一個名字,就會將個性簽名一併顯示在這個視窗介面中,今天我就帶著大家一起完成這個需求。
今天的文章可以看成是爬蟲+Tkinter視窗的結合。昨天我們完成了Tkinter視窗搭建過程,今天需要做的就是利用爬蟲得到我們最終想要的個性化簽名。網上線上簽名網站特別多,我也是任意選取了百度首頁排在第一位的那個線上簽名網站。
這個文章有一個不好的地方,就是你輸入一些空格,網站就給你顯示一個空白(如圖所示)。
我們在寫程式碼的時候,可不能這樣,要避免這個問題的發生。我的想法是這樣的,如果你輸入為空,我就彈窗提醒你。
從圖中可以發現,我們在輸入框每輸入一個名字,進行查詢後。相當於給伺服器傳送了一次post請求
,post請求的表單共有四個,從圖中可以很清晰地看出來。總的來說,這個網站還是挺簡單的,會一些簡單的爬蟲都可以完成,我這裡就不詳細介紹了。
怎麼檢視網頁原始碼,相信大家不用我說了吧。我們想要獲取的資料,一般的網址是會直接顯示在原始碼中,比如說今天這個網站,但是對於大多數網站就不一定了。通過定位我們發現,最終想要的個性簽名圖片,位於class="tu"
的div標籤
中,我已經用紅色方框標註出來了,由於我們只是獲取這一條資訊,直接使用正規表示式來獲取好了。
通過上述說明,我們已經將準備工作做好了,現在可以書寫程式碼了。這裡有幾個知識點昨天還沒有講述到,就簡單提一下。
entry.get()
獲取使用者輸入。我們在輸入框輸入什麼,這裡可以捕捉到;
messagebox.showinfo()
能夠完成彈窗提示,和VBA有點像;
from tkinter import * from tkinter import messagebox import requests import re from PIL import Image,ImageTk def func(): # 獲取視窗輸入的名字 name = entry.get() print(name) # 去掉空格 name = name.strip() # 判斷:如果使用者輸入為空,顯示 if name == "": messagebox.showinfo("提示",message="請輸入完整的名字") else: # 請求網站,獲取圖片 data = { 'word': name, 'sizes': '60', 'fonts': 'yqk.ttf', 'fontcolor': ''#000000' } url = "http://www.uustv.com/" result = requests.post(url,data) result.encoding = "utf-8" html = result.text pattern = r'<img src="(.*?)"/></div>' img_path = re.findall(pattern,html)[0] img_url = url + img_path # 寫入到本地 with open(f'{name}的簽名照.gif', "wb") as f: f.write(requests.get(img_url).content) # 將圖片展示在視窗上 bm = ImageTk.PhotoImage(file=f'{name}的簽名照.gif') label2 = Label(root,image=bm) label2.bm = bm label2.grid(row=3,columnspan=2) # 建立視窗:範例化一個視窗物件。 root = Tk() # 視窗大小 root.geometry("540x305+374+182") # 視窗標題 root.title("我的個性簽名設計") # 新增標籤控制元件 label = Label(root,text="簽名:",font=("宋體",25),fg="red") # 定位 label.grid() # 新增輸入框 entry = Entry(root,font=("宋體",25),fg="black") entry.grid(row=0,column=1) # 新增點選按鈕 button = Button(root,text="簽名設計",font=("宋體",25),fg="blue",command=func) button.grid(row=1,column=1) # 顯示視窗 root.mainloop()
效果如下:
為了更好的在不懂行的面前裝逼,我最終也將程式使用pyinstaller打包了。這樣你就可以發給那些文科妹子裝裝逼,不是很好嗎?也會一併提供給大家。
本文有兩個遺留問題,可以交給大家解決一下。其一,原網站可以進行簽名設計的字型切換,我這個在程式碼中沒有體現出來,你可以自行研究一下。其二,使用pyinstaller打包後的程式,雖然可以執行,但是好慢呀,大家自行下去思考。
以上就是Python+Tkinter打造簽名設計工具的詳細內容,更多關於Python Tkinter簽名設計的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45