欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python庫(kù)學(xué)習(xí)Tkinter制作GUI個(gè)性簽名設(shè)計(jì)軟件

 更新時(shí)間:2021年09月26日 10:15:29   作者:朱小五是凹凸君呀  
Tkinter 是 Python 中的標(biāo)準(zhǔn) GUI 庫(kù),使用 Tkinter 可以快速地創(chuàng)建 GUI 應(yīng)用程序。今天我們打算再用一個(gè)小案例,帶大家加深對(duì)Tkinter的理解

人生苦短,快學(xué)Python!

上一周發(fā)了一篇文章《Python Tkinter圖形工具使用方法及實(shí)例解析》,很多小伙伴都希望能多出點(diǎn)教程,今天就來了。

Tkinter簡(jiǎn)介

由于Tkinter是Python自帶的標(biāo)準(zhǔn)庫(kù),我們想要使用它的時(shí)候,只需直接導(dǎo)入即可。

from tkinter import *

Tkinter支持的組件有:

對(duì)于簡(jiǎn)單的圖形界面 Tkinter 還是能應(yīng)付自如,不過相對(duì)于PyQt5做出的界面不夠美觀,相對(duì)于Pysimplegui則顯得代碼太笨重。這兩個(gè)庫(kù)埋個(gè)坑,后面開一篇單獨(dú)介紹。

今天的整體思路就是:先選擇一個(gè)在線簽名網(wǎng)站,找到接口模擬請(qǐng)求,然后將生成的簽名圖片下載到本地,最后顯示在 Tkinter 生成的 GUI 窗口上。

獲取個(gè)性簽名圖

在制作個(gè)性簽名軟件前,第一件事是先找到一個(gè)合適的網(wǎng)站,獲取他們的接口。

為啥說要找合適的網(wǎng)站呢?

某搜索引擎 一搜"簽名設(shè)計(jì)",那真的是花里胡哨啊,我的審美被一頓沖擊?!皝y花叢中”找了一圈,才挑到一個(gè)稍微正常一點(diǎn)的網(wǎng)站。

網(wǎng)站地址:http://www.yishuzi.com/b/13.htm

F12開發(fā)者模式,選擇 Network。手動(dòng)將配色調(diào)整為#000000黑色,背景調(diào)整為#FFFFFF白色,隨便輸入一個(gè)名字,點(diǎn)擊生成。

非常輕松,就可以找到該網(wǎng)站生成簽名發(fā)送的請(qǐng)求。如下所示:

廢話不多說,直接上Python!

通過requests.post()請(qǐng)求該網(wǎng)址,并導(dǎo)入?yún)?shù)。

其中最重要的參數(shù)有兩個(gè): id對(duì)應(yīng)的是帶生成名字,id1對(duì)應(yīng)的是藝術(shù)字體。

import requests
from urllib.request import urlretrieve
url = 'http://www.yishuzi.com/b/re13.php'
d = requests.post(url, data={'id': '測(cè)試簽名', 'zhenbi': '20191123',
                             'id1': '904', 'id2': '#FFFFFF', 
                             'id4': '#000000', 'id6': '#000000'})
d.content.decode("utf-8")

可以看到,post()返回的是帶有鏈接的字符串。

輕松就可以從返回的字符串中,提取到生成的增長(zhǎng)的個(gè)性簽名圖片。然后用urlretrieve()下載圖片到本地,最后將其封裝為自定義函數(shù)。

def create_sign(word):
    url = 'http://www.yishuzi.com/b/re13.php'
    d = requests.post(url, data={'id': word, 'zhenbi': '20191123',
                                 'id1': '904', 'id2': '#FFFFFF', 'id4': '#000000', 'id6': '#000000'})
    myurl = d.content.decode("utf-8").split('"')[1]
    urlretrieve(myurl, word + '.png')

后續(xù)在設(shè)計(jì)軟件GUI界面時(shí),直接調(diào)用這個(gè)函數(shù),就可以直接生成個(gè)性簽名了。

設(shè)計(jì)軟件GUI界面

下載簽名圖片函數(shù)create_sign()已經(jīng)創(chuàng)建好,工作實(shí)際就完成了一半。

剩下就是我們?cè)O(shè)計(jì)軟件界面了,不妨先簡(jiǎn)單畫個(gè)草圖。

這里主要要用到:Label(標(biāo)簽控件)、Entry(輸入控件)、 Button(按鈕控件)、Frame(框架控件)以及選擇字體時(shí),需要用到的Combobox(下拉列表框)。

前面的控件都介紹過,具體看這一篇8000字,Tkinter詳細(xì)使用教程!,這里只重點(diǎn)講一下下拉列表框。

下拉列表框

Python 窗體(Tkinter)下拉列表框Combobox。它是在Tkinter模塊下的ttk模塊的一個(gè)部件,產(chǎn)生的效果是一個(gè)下拉列表框,它是GUI當(dāng)中的一個(gè)裝飾(widget)。當(dāng)用戶點(diǎn)擊下拉列表獲取值的時(shí)候是從列表當(dāng)中選取的,那么就會(huì)產(chǎn)生一個(gè)名為<<ComboboxSelected>>的虛擬事件。

其常見的幾個(gè)參數(shù)有:

語法 作用
cv = tk.stringVar() 綁定變量
com = ttk.Combobox(root, textvariable=cv) 創(chuàng)建下拉框
com.pack() 放置下拉框
com[“value”] = (‘文本',文本') 設(shè)置下拉數(shù)據(jù)
com.current(索引) 設(shè)置默認(rèn)值
demo = com.get() 變量接受值
com.bind("<>", 函數(shù)名) 下拉數(shù)據(jù)點(diǎn)擊調(diào)用函數(shù)

簡(jiǎn)單用一個(gè)小例子幫助大家理解。

import tkinter
from tkinter import ttk
root = tkinter.Tk()
root.geometry("400x200") 
xVariable = tkinter.StringVar()   #創(chuàng)建變量
com = ttk.Combobox(root, textvariable=xVariable)  #創(chuàng)建下拉菜單
com.pack()     #將下拉菜單綁定到窗體
com["value"] = ("選項(xiàng)1", "選項(xiàng)2", "選項(xiàng)3", "選項(xiàng)4")
com.current(0)   #設(shè)定下拉菜單的默認(rèn)值
root.mainloop()

運(yùn)行后,效果如下所示。

這樣我們?cè)偻ㄟ^com.get(),就可以獲取下拉框中,最后選擇的值了。

設(shè)計(jì)界面

剩下的界面設(shè)計(jì)就簡(jiǎn)單多了,只需要將Label(標(biāo)簽控件)、Entry(輸入控件)、 Button(按鈕控件)、Frame(框架控件)、Combobox(下拉列表框)排列一下。

回想一下前面畫的草圖,開整!

規(guī)定窗口大小為600x400,再設(shè)置窗口的基本屬性。

所有組件都采用place幾何方法,將組件的大小及布局,進(jìn)行合理的規(guī)劃。同時(shí),Button組件也都與其對(duì)應(yīng)的功能函數(shù)create_sign(word),進(jìn)行了鏈接。

部分代碼如下所示,完整代碼見文末。

root = Tk()
root.title("簽名設(shè)計(jì) by:快學(xué)Python")
root.geometry("600x400")
bg_image = PhotoImage(file = 'background.png')
bg_label = Label(root, image = bg_image)
bg_label.place(relwidth = 1, relheight = 1)
frame = Frame(root, bg = '#edcc79', bd = 5)
frame.place(relx = 0.5, rely = 0.1, relwidth = 0.75, relheight = 0.1,anchor = 'n')
font_label = Label(frame, text = '輸入簽名:', font = ('微軟雅黑', 16), fg ='black')
font_label.place(relwidth = 0.25, relheight = 1)
name_entry = Entry(frame, font = ('微軟雅黑', 16))

最終成品,展示一下。

輸入名字,點(diǎn)擊生成,一氣呵成!不同風(fēng)格,一鍵轉(zhuǎn)換!

這樣,我們就又完成了一個(gè)Tkinter實(shí)戰(zhàn)小案例。

以上就是Python庫(kù)學(xué)習(xí)Tkinter制作GUI個(gè)性簽名設(shè)計(jì)軟件的詳細(xì)內(nèi)容,更多關(guān)于Python庫(kù)Tkinter制作GUI應(yīng)用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python3的輸入方式及多組輸入方法

    python3的輸入方式及多組輸入方法

    今天小編就為大家分享一篇python3的輸入方式及多組輸入方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python設(shè)計(jì)實(shí)現(xiàn)的計(jì)算器功能完整實(shí)例

    Python設(shè)計(jì)實(shí)現(xiàn)的計(jì)算器功能完整實(shí)例

    這篇文章主要介紹了Python設(shè)計(jì)實(shí)現(xiàn)的計(jì)算器功能,結(jié)合完整實(shí)例形式分析了Python3.5實(shí)現(xiàn)計(jì)算器功能的正則、字符串及數(shù)值運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • 如何用Python合并lmdb文件

    如何用Python合并lmdb文件

    這篇文章主要為大家詳細(xì)介紹了如何用Python合并lmdb文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • python下的opencv畫矩形和文字注釋的實(shí)現(xiàn)方法

    python下的opencv畫矩形和文字注釋的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇python下的opencv畫矩形和文字注釋的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python 自動(dòng)化處理Excel和Word實(shí)現(xiàn)自動(dòng)辦公

    Python 自動(dòng)化處理Excel和Word實(shí)現(xiàn)自動(dòng)辦公

    毫無疑問,Microsoft Excel 和 Word 是我們?nèi)粘^k公中使用最廣泛的辦公軟件。將反復(fù)、復(fù)雜的工作自動(dòng)化處理,是我們需要思考的問題,本篇文章幫你解決這個(gè)問題
    2021-11-11
  • numpy中的meshgrid函數(shù)的使用

    numpy中的meshgrid函數(shù)的使用

    這篇文章主要介紹了numpy中的meshgrid函數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python 面向?qū)ο蟛糠种R(shí)點(diǎn)小結(jié)

    Python 面向?qū)ο蟛糠种R(shí)點(diǎn)小結(jié)

    這篇文章主要介紹了Python 面向?qū)ο蟛糠种R(shí)點(diǎn),總結(jié)分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類、對(duì)象、實(shí)例等相關(guān)概念、原理與使用技巧,需要的朋友可以參考下
    2020-03-03
  • Python 使用Numpy對(duì)矩陣進(jìn)行轉(zhuǎn)置的方法

    Python 使用Numpy對(duì)矩陣進(jìn)行轉(zhuǎn)置的方法

    今天小編就為大家分享一篇Python 使用Numpy對(duì)矩陣進(jìn)行轉(zhuǎn)置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python變量的賦值、淺拷貝和深拷貝詳解

    Python變量的賦值、淺拷貝和深拷貝詳解

    這篇文章主要介紹了Python變量的賦值、淺拷貝和深拷貝詳解,python中為聲明一個(gè)變量有三種方法:賦值、淺拷貝、深拷貝,相信每個(gè)pythoner或多或少都知道他們之間的區(qū)別,但在某些點(diǎn)上,還是會(huì)踩坑,這篇文章記錄下所有關(guān)于這三者區(qū)別的疑問,需要的朋友可以參考下
    2023-11-11
  • 詳解python內(nèi)置模塊urllib

    詳解python內(nèi)置模塊urllib

    這篇文章主要介紹了python內(nèi)置模塊urllib的相關(guān)資料,幫助大家更好的理解和使用python 內(nèi)置模塊,感興趣的朋友可以了解下
    2020-09-09

最新評(píng)論