最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+Tkinter打造簽名設(shè)計工具

 更新時間:2022年04月01日 11:23:04   作者:黃偉呢  
這篇文章主要為大家分享如何利用Python Tkinter庫制作帶圖形界面的一個簽名設(shè)計工具,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下

1.概述

前面我們已經(jīng)詳細的介紹了,怎么使用Tkinter創(chuàng)建屬于自己的窗口界面了。整體布局呢我們已經(jīng)搭建起來,唯一沒有實現(xiàn)的一個步驟就是,用戶每輸入一個名字,就會將個性簽名一并顯示在這個窗口界面中,今天我就帶著大家一起完成這個需求。

今天的文章可以看成是爬蟲+Tkinter窗口的結(jié)合。昨天我們完成了Tkinter窗口搭建過程,今天需要做的就是利用爬蟲得到我們最終想要的個性化簽名。網(wǎng)上在線簽名網(wǎng)站特別多,我也是任意選取了百度首頁排在第一位的那個在線簽名網(wǎng)站

2.網(wǎng)頁分析

1)網(wǎng)頁缺陷

這個文章有一個不好的地方,就是你輸入一些空格,網(wǎng)站就給你顯示一個空白(如圖所示)。

我們在寫代碼的時候,可不能這樣,要避免這個問題的發(fā)生。我的想法是這樣的,如果你輸入為空,我就彈窗提醒你。

圖片

2)頁面分析

從圖中可以發(fā)現(xiàn),我們在輸入框每輸入一個名字,進行查詢后。相當于給服務(wù)器發(fā)送了一次post請求,post請求的表單共有四個,從圖中可以很清晰地看出來??偟膩碚f,這個網(wǎng)站還是挺簡單的,會一些簡單的爬蟲都可以完成,我這里就不詳細介紹了。

3)數(shù)據(jù)的獲取

怎么查看網(wǎng)頁源代碼,相信大家不用我說了吧。我們想要獲取的數(shù)據(jù),一般的網(wǎng)址是會直接顯示在源代碼中,比如說今天這個網(wǎng)站,但是對于大多數(shù)網(wǎng)站就不一定了。通過定位我們發(fā)現(xiàn),最終想要的個性簽名圖片,位于class="tu"div標簽中,我已經(jīng)用紅色方框標注出來了,由于我們只是獲取這一條信息,直接使用正則表達式來獲取好了。

3.完整代碼

通過上述說明,我們已經(jīng)將準備工作做好了,現(xiàn)在可以書寫代碼了。這里有幾個知識點昨天還沒有講述到,就簡單提一下。

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:
        # 請求網(wǎng)站,獲取圖片
        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)

# 創(chuàng)建窗口:實例化一個窗口對象。
root = Tk()

# 窗口大小
root.geometry("540x305+374+182")

#  窗口標題
root.title("我的個性簽名設(shè)計")

# 添加標簽控件
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="簽名設(shè)計",font=("宋體",25),fg="blue",command=func)
button.grid(row=1,column=1)

# 顯示窗口
root.mainloop()

效果如下:

4.總結(jié)

為了更好的在不懂行的面前裝逼,我最終也將程序使用pyinstaller打包了。這樣你就可以發(fā)給那些文科妹子裝裝逼,不是很好嗎?也會一并提供給大家。

本文有兩個遺留問題,可以交給大家解決一下。其一,原網(wǎng)站可以進行簽名設(shè)計的字體切換,我這個在代碼中沒有體現(xiàn)出來,你可以自行研究一下。其二,使用pyinstaller打包后的程序,雖然可以運行,但是好慢呀,大家自行下去思考。

以上就是Python+Tkinter打造簽名設(shè)計工具的詳細內(nèi)容,更多關(guān)于Python Tkinter簽名設(shè)計的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中 Lambda表達式全面解析

    Python中 Lambda表達式全面解析

    Lambda是一種匿名函數(shù),當我們需要重復(fù)調(diào)用某一函數(shù),又不想寫那么多代碼時可以使用lambda表達式來代替。本文給大家介紹Python中 Lambda表達式,需要的朋友一起學(xué)習(xí)吧
    2016-11-11
  • matplotlib圖例legend語法及設(shè)置的方法

    matplotlib圖例legend語法及設(shè)置的方法

    這篇文章主要介紹了matplotlib圖例legend語法及設(shè)置的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 教你用Python為二年級的學(xué)生批量生成數(shù)學(xué)題

    教你用Python為二年級的學(xué)生批量生成數(shù)學(xué)題

    這兩天在學(xué)習(xí)pthon,正好遇到老師布置的暑假作業(yè),需要家長給還在出試卷,下面這篇文章主要給大家介紹了關(guān)于如何用Python為二年級的學(xué)生批量生成數(shù)學(xué)題的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • Win10系統(tǒng)下Pytorch環(huán)境的搭建過程

    Win10系統(tǒng)下Pytorch環(huán)境的搭建過程

    今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著Win10系統(tǒng)Pytorch環(huán)境搭建過程展開,文中有非常詳細的介紹及圖文示例,需要的朋友可以參考下
    2021-06-06
  • django開發(fā)教程之利用緩存文件進行頁面緩存的方法

    django開發(fā)教程之利用緩存文件進行頁面緩存的方法

    緩存相信對各位程序員們來說都不陌生,下面這篇文章主要給大家介紹了關(guān)于django開發(fā)教程之利用緩存文件進行頁面緩存的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友們可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • Python?Streamlit制作交互式可視化網(wǎng)頁應(yīng)用實例

    Python?Streamlit制作交互式可視化網(wǎng)頁應(yīng)用實例

    這篇文章主要為大家介紹了Python?Streamlit制作交互式可視化網(wǎng)頁應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • 在Linux系統(tǒng)上部署Apache+Python+Django+MySQL環(huán)境

    在Linux系統(tǒng)上部署Apache+Python+Django+MySQL環(huán)境

    這篇文章主要介紹了在Linux系統(tǒng)上部署Apache+Python+Django+MySQL環(huán)境的方法,使用到了mod_python 與mysqldb模塊進行連接,需要的朋友可以參考下
    2015-12-12
  • python+selenium 腳本實現(xiàn)每天自動登記的思路詳解

    python+selenium 腳本實現(xiàn)每天自動登記的思路詳解

    這篇文章主要介紹了python+selenium 腳本實現(xiàn)每天自動登記,本文你給大家分享基本的思路,通過實例代碼截圖的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • 用于ETL的Python數(shù)據(jù)轉(zhuǎn)換工具詳解

    用于ETL的Python數(shù)據(jù)轉(zhuǎn)換工具詳解

    這篇文章主要介紹了用于ETL的Python數(shù)據(jù)轉(zhuǎn)換工具,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • jmeter中用python實現(xiàn)請求參數(shù)的隨機方式

    jmeter中用python實現(xiàn)請求參數(shù)的隨機方式

    首先,需下載Jython插件于https://www.jython.org/download后,將其放入JMeter的lib目錄并重啟JMeter,其次,添加JSR223PreProcessor并選擇Python作為語言,編寫腳本,其中metrics_ids3和metrics_weidu3為列表變量
    2024-10-10

最新評論

伊宁市| 石城县| 汕尾市| 桦甸市| 尼玛县| 杭锦后旗| 黄平县| 精河县| 景泰县| 沭阳县| 中牟县| 壤塘县| 城步| 保亭| 教育| 邯郸县| 鄂托克旗| 五台县| 永济市| 河津市| 蓝田县| 南开区| 西乌| 远安县| 海阳市| 常山县| 松原市| 竹北市| 百色市| 石城县| 武功县| 大渡口区| 宜君县| 鸡西市| 琼中| 会昌县| 长春市| 全州县| 平陆县| 长沙市| 呼伦贝尔市|