python—Tk:寫一個設計簽名的程序

 利用tk創建一個可視化窗口:

from tkinter import *

# 創建窗口
root = Tk()

# 循環顯示
root.mainloop()

mainloop爲主循環,循環顯示窗口;

之後的主程序代碼都需要寫在mainloop之前,

run ===>

調整窗口大小,添加標題和相應文字:

from tkinter import *

# 創建窗口
root = Tk()
# 標題
root.title('簽名設計')
# 窗口大小
root.geometry('600x300+650+390')
# 標籤1
label = Label(root, text='名字', font='華文行楷, 20', fg='blue')
# 標籤位置
label.grid(row=0, column=0)
# 循環顯示
root.mainloop()

窗口大小爲600x300,中間爲小寫x,兩組加號分別爲窗口左上角的橫縱座標(打開窗口時窗口出現的位置),

可以獲取屏幕分辨率按比例顯示窗口位置:

wid = root.winfo_screenwidth()
hei = root.winfo_screenheight()
root.geometry('600x300+{}+{}'.format(wid//3, hei//3))

grid定位標籤在窗口中的位置,row爲第幾行,column爲第幾列

run===>

添加輸入窗口和按鈕:

# 輸入窗口
entry = Entry(root, font='華文行楷, 20')
# 窗口位置
entry.grid(row=0, column=1)
# 按鈕
button = Button(root, text='設計簽名', font='華文行楷, 20', fg='red')
# 按鈕位置
button.grid(row=1, column=0)

Entry爲輸入窗口,其中font爲輸入字體和大小,

Button爲按鈕及文本屬性

run ===> 

當我們點擊按鈕時,需要獲取輸入的名字在設計簽名的網站上設計出的簽名,並在窗口中顯示出來,

--編寫獲取簽名並上傳的函數:

先添加點擊按鈕後的動作:

button = Button(root, text='設計簽名', font='華文行楷, 20', fg='red', command=download)

設計函數download:

def download():
    # 獲取輸入名字
    name = entry.get()
    # 移除名字頭尾的空格
    name = name.strip()
    # 如果名字爲空格,則要求重新輸入
    if name == '':
        messagebox.showinfo('請輸入名字~')
    else:
        # 輸入正確時:從網站獲取簽名
        data = {
            'word': name,
            'sizes': 60,
            'fonts': 'jfcs.ttf',
            'fontcolor': '#000000'
        }
        url = 'http://www.uustv.com/'
        # 獲取html
        result = requests.post(url, data)
        result.encoding = 'utf8'
        html = result.text
        # 正則獲取簽名圖片地址
        reg = '<div class="tu">.*?<img src="(.*?)"/></div>'
        img_path = re.findall(reg, html)
        imgurl = url + img_path[0]
        response = requests.get(imgurl).content
        # 下載圖片
        with open('{}.gif'.format(name), 'wb') as f:
            f.write(response)
        # 顯示圖片
        bm = ImageTk.PhotoImage(file='{}.gif'.format(name))
        label2 = Label(root, image=bm)
        label2.bm = bm
        label2.grid(row=2, columnspan=2)

messagebox.showinfo()彈出提示框,

根據網頁,提取簽名圖片,

使用pyinstaller打包成.exe文件

pyinstaller -F -w *.py

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章