Python+Tkinter制作專屬圖形化界面
介紹
本期案例是帶著大家制作一個(gè)屬于自己的GUI圖形化界面—>用于設(shè)計(jì)簽名的哦(效果如下圖),是不是感覺很好玩,是不是很想學(xué)習(xí)呢?限于篇幅,今天我們首先詳細(xì)講述一下Tkinter
的使用方法。本來不準(zhǔn)備詳細(xì)講述這個(gè)基礎(chǔ)知識(shí),但是我怕那些想學(xué)習(xí)的同學(xué),學(xué)起來不過癮,還是補(bǔ)充了這一章。
tkinter的簡(jiǎn)單應(yīng)用
Tkinter
是Python的標(biāo)準(zhǔn)GUI庫。Python使用Tkinter可以快速地創(chuàng)建GUI應(yīng)用程序。當(dāng)然常用的GUI庫還有PyQt5
,我們只需要知道這兩個(gè)常用的即可,如果你真的想學(xué)習(xí)的話。由于Tkinter
屬于Python標(biāo)準(zhǔn)庫,就不需要使用pip安裝,直接導(dǎo)入使用即可。
顯示窗口
root.mainloop()
顯示窗口;
窗口默認(rèn)會(huì)顯示在電腦屏幕的左上角,非常小(后面需要改進(jìn));
from tkinter import * from tkinter import messagebox # 創(chuàng)建窗口:實(shí)例化一個(gè)窗口對(duì)象。 root = Tk() # 顯示窗口 root.mainloop() """ 注意到:該窗口默認(rèn)的顯示位置在哪里,觀察我下面的截圖。 窗口默認(rèn)顯示在整個(gè)電腦屏幕的左上角,并且窗口大小特別小。 """
結(jié)果如下:
注意:上面2行代碼,首先實(shí)例化一個(gè)窗口對(duì)象,然后我們展示了這個(gè)窗口,讓其真正顯示出來。接下來我們的操作,就是針對(duì)這個(gè)窗口的一系列優(yōu)化操作,請(qǐng)注意:這個(gè)優(yōu)化操作使用的代碼,都是放在這2句代碼中間。
設(shè)置窗口大小
root.geometry("600x400")
調(diào)整窗口的大??;
該方法中傳入的是"寬x高",但是需要注意這個(gè)乘號(hào)是小寫的英文字母x,而不是這個(gè)*表示的乘號(hào);
from tkinter import * from tkinter import messagebox # 創(chuàng)建窗口:實(shí)例化一個(gè)窗口對(duì)象。 root = Tk() # 窗口大小 root.geometry("600x450") # 顯示窗口 root.mainloop()
結(jié)果如下:
調(diào)整窗口位置(使用的是同一個(gè)方法)
root.geometry("600x400+374+182")
調(diào)整窗口的大小+位置;
374,182表示的是窗口頂點(diǎn),距離電腦左上角的坐標(biāo)。這個(gè)數(shù)字怎么得到的呢?直接借助微信截圖就可以顯示了。
操作代碼如下:
from tkinter import * from tkinter import messagebox # 創(chuàng)建窗口:實(shí)例化一個(gè)窗口對(duì)象。 root = Tk() # 窗口大小 root.geometry("600x450+374+182") # 顯示窗口 root.mainloop()
結(jié)果如下:
設(shè)置窗口的標(biāo)題
root.title()
設(shè)置窗口的標(biāo)題;
默認(rèn)的窗口標(biāo)題是tk;
from tkinter import * from tkinter import messagebox # 創(chuàng)建窗口:實(shí)例化一個(gè)窗口對(duì)象。 root = Tk() # 窗口大小 root.geometry("600x450+374+182") # 窗口標(biāo)題 root.title("我的個(gè)性簽名設(shè)計(jì)") # 顯示窗口 root.mainloop()
結(jié)果如下:
添加標(biāo)簽控件,并定位
Label(root,text="簽名")
添加標(biāo)簽控件
第一個(gè)參數(shù)傳入的就是實(shí)例化的那個(gè)root窗口對(duì)象;第二個(gè)參數(shù)傳入的要顯示的那個(gè)標(biāo)簽文本;
僅僅添加標(biāo)簽控件后,還不行,必須要指定一個(gè)位置后,該標(biāo)簽控件才會(huì)真正展示出來,即最后需要調(diào)用grid()方法后,才會(huì)顯示標(biāo)簽控件;
from tkinter import * from tkinter import messagebox # 創(chuàng)建窗口:實(shí)例化一個(gè)窗口對(duì)象。 root = Tk() # 窗口大小 root.geometry("600x450+374+182") # 窗口標(biāo)題 root.title("我的個(gè)性簽名設(shè)計(jì)") # 添加標(biāo)簽控件 label = Label(root) # 定位 label.grid() # 顯示窗口 root.mainloop()
結(jié)果如下:
當(dāng)然你也可以想到,這個(gè)方法肯定還可以修改字體樣式、字體大小、字體顏色呀?具體怎么操作呢?我們接著往下面看。
from tkinter import * from tkinter import messagebox # 創(chuàng)建窗口:實(shí)例化一個(gè)窗口對(duì)象。 root = Tk() # 窗口大小 root.geometry("600x450+374+182") # 窗口標(biāo)題 root.title("我的個(gè)性簽名設(shè)計(jì)") # 添加標(biāo)簽控件 label = Label(root,text="簽名",font=("宋體",25),fg="red") """ text參數(shù)用于指定顯示的文本; font參數(shù)用于指定字體大小和字體樣式; fg參數(shù)用于指定字體顏色; """ # 定位 label.grid() # 顯示窗口 root.mainloop()
結(jié)果如下:
添加輸入框,并定位
Entry(root,font=("宋體",25),fg="red")
添加輸入框
第一個(gè)參數(shù)傳入的就是實(shí)例化的那個(gè)root窗口對(duì)象;第二個(gè)參數(shù)可寫可不寫,指的是我們輸入的字體的字體樣式和字體大??;第三個(gè)參數(shù)同樣可寫可不寫,表示的是我們輸入的字體的顏色。
同樣,僅僅使用上述代碼并不會(huì)顯示輸入框,只有調(diào)用grid()方法,定位后,才會(huì)真正顯示這個(gè)輸入框;
from tkinter import * from tkinter import messagebox # 創(chuàng)建窗口:實(shí)例化一個(gè)窗口對(duì)象。 root = Tk() # 窗口大小 root.geometry("600x450+374+182") # 窗口標(biāo)題 root.title("我的個(gè)性簽名設(shè)計(jì)") # 添加標(biāo)簽控件 label = Label(root,text="簽名",font=("宋體",25),fg="red") # 定位 label.grid() # 添加輸入框 entry = Entry(root,font=("宋體",25),fg="red") entry.grid() # 顯示窗口 root.mainloop()
結(jié)果如下:
注意:很明顯這樣的擺放方式,并不是我們想要的。我們需要調(diào)整一下,下面我們專門花一個(gè)小節(jié)時(shí)間,去講述怎么調(diào)整這個(gè)擺放位置。
調(diào)整控件的擺放位置
首先我們需要搞明白,顯示窗口究竟采用的是什么樣子的布局方式呢?其實(shí)是網(wǎng)格式的布局方式。那么什么又是網(wǎng)格式的布局方式呢?excel表格你知道吧,一個(gè)個(gè)的格子就是網(wǎng)格式的布局方式。
好了!知道了上述原理后,我們現(xiàn)在來真正的調(diào)整這個(gè)控件擺放位置啦。
from tkinter import * from tkinter import messagebox # 創(chuàng)建窗口:實(shí)例化一個(gè)窗口對(duì)象。 root = Tk() # 窗口大小 root.geometry("600x450+374+182") # 窗口標(biāo)題 root.title("我的個(gè)性簽名設(shè)計(jì)") # 添加標(biāo)簽控件 label = Label(root,text="簽名:",font=("宋體",25),fg="red") # 定位 label.grid() """ label.grid()等價(jià)于label.grid(row=0,column=0) """ # 添加輸入框 entry = Entry(root,font=("宋體",25),fg="red") entry.grid(row=0,column=1) """ row=0,column=1表示我們將輸入框控件,放在第1行第2列的位置; python語言中,這個(gè)下標(biāo)是從0開始的。 """ # 顯示窗口 root.mainloop()
結(jié)果如下:
添加點(diǎn)擊按鈕
Button(root,text="簽名設(shè)計(jì)",font=("宋體",25),fg="red")
添加輸入框
第一個(gè)參數(shù)傳入的就是實(shí)例化的那個(gè)root窗口對(duì)象;第二個(gè)參數(shù)展示的是我們這個(gè)點(diǎn)擊按鈕的標(biāo)簽;第三個(gè)參數(shù)可寫可不寫,指的是點(diǎn)擊按鈕字體的字體樣式和字體大?。坏谒膫€(gè)參數(shù)同樣可寫可不寫,表示的是點(diǎn)擊按鈕字體的顏色。
同樣,僅僅使用上述代碼并不會(huì)顯示輸入框,只有調(diào)用grid()方法,定位后,才會(huì)真正顯示這個(gè)點(diǎn)擊按鈕;
from tkinter import * from tkinter import messagebox # 創(chuàng)建窗口:實(shí)例化一個(gè)窗口對(duì)象。 root = Tk() # 窗口大小 root.geometry("600x450+374+182") # 窗口標(biāo)題 root.title("我的個(gè)性簽名設(shè)計(jì)") # 添加標(biāo)簽控件 label = Label(root,text="簽名:",font=("宋體",25),fg="red") # 定位 label.grid() # 添加輸入框 entry = Entry(root,font=("宋體",25),fg="red") entry.grid(row=0,column=1) # 添加點(diǎn)擊按鈕 button = Button(root,text="簽名設(shè)計(jì)",font=("宋體",25),fg="blue") button.grid(row=1,column=1) # 顯示窗口 root.mainloop()
結(jié)果如下:
至此界面已經(jīng)簡(jiǎn)單搭建起來了,接下來要做的就是輸入一個(gè)名字,點(diǎn)擊簽名設(shè)計(jì)后,會(huì)顯示我的這個(gè)簽名,此時(shí)就需要借助爬蟲啦!明天我們將會(huì)發(fā)布該文的下篇哦,敬請(qǐng)期待。
點(diǎn)擊按鈕自定義功能
這里最后補(bǔ)充這個(gè)知識(shí)點(diǎn),我們點(diǎn)擊按鈕后,總是希望能夠給我們返回點(diǎn)什么,所以呢,需要我們自定義函數(shù)。
from tkinter import * from tkinter import messagebox def func(): print("我是黃同學(xué)") # 創(chuàng)建窗口:實(shí)例化一個(gè)窗口對(duì)象。 root = Tk() # 窗口大小 root.geometry("600x450+374+182") # 窗口標(biāo)題 root.title("我的個(gè)性簽名設(shè)計(jì)") # 添加標(biāo)簽控件 label = Label(root,text="簽名:",font=("宋體",25),fg="red") # 定位 label.grid() # 添加輸入框 entry = Entry(root,font=("宋體",25),fg="red") entry.grid(row=0,column=1) # 添加點(diǎn)擊按鈕 button = Button(root,text="簽名設(shè)計(jì)",font=("宋體",25),fg="blue",command=func) button.grid(row=1,column=1) """ command=func表示調(diào)用最開始定義的func函數(shù)。 func函數(shù)一定要在這句代碼之前,因?yàn)檫@里需要調(diào)用這個(gè)func函數(shù)。 """ # 顯示窗口 root.mainloop()
結(jié)果如下:
以上就是Python+Tkinter制作專屬圖形化界面的詳細(xì)內(nèi)容,更多關(guān)于Python Tkinter圖形化界面的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python實(shí)現(xiàn)完全數(shù)的示例詳解
完全數(shù),又稱完美數(shù),定義為:這個(gè)數(shù)的所有因數(shù)(不包括這個(gè)數(shù)本身)加起來剛好等于這個(gè)數(shù)。本文就來用Python實(shí)現(xiàn)計(jì)算完全數(shù),需要的可以參考一下2023-01-01python實(shí)現(xiàn)學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01PyQt6/PySide6 的 QPropertyAnimation 類適用場(chǎng)景分析
QGraphicsView和QGraphicsScene是Qt圖形視圖框架的核心類,用于構(gòu)建高性能、可交互的2D圖形界面,QGraphicsView 和 QGraphicsScene 為復(fù)雜圖形應(yīng)用提供了強(qiáng)大支持,本文給大家介紹PyQt6/PySide6 的 QPropertyAnimation 類,感興趣的朋友一起看看吧2025-03-03django 配置阿里云OSS存儲(chǔ)media文件的例子
今天小編就為大家分享一篇django 配置阿里云OSS存儲(chǔ)media文件的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08解析Python 偏函數(shù)用法全方位實(shí)現(xiàn)
這篇文章主要介紹了解析Python 偏函數(shù)用法全方位實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Django的restframework接口框架自定義返回?cái)?shù)據(jù)格式的示例詳解
這篇文章主要介紹了Django的restframework接口框架自定義返回?cái)?shù)據(jù)格式,本文介紹了通過Django的restframework接口框架自定義Response返回對(duì)象來自定義返回?cái)?shù)據(jù)格式,本文通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07