請關注公衆号:【資料分析與統計學之美】
本期案例是帶着大家制作一個屬于自己的GUI圖形化界面—>用于設計簽名的哦(效果如下圖),是不是感覺很好玩,是不是很想學習呢?限于篇幅,今天我們首先詳細講述一下
Thinter
的使用方法。本來不準備詳細講述這個基礎知識,但是我怕那些想學習的同學,學起來不過瘾,還是補充了這一章。
thinter的簡單應用
Thinter
是python的标準GUI庫。python使用Tkinter可以快速地建立GUI應用程式。當然常用的GUI庫還有
PyQt5
,我們隻需要知道這兩個常用的即可,如果你真的想學習的話。由于
Thinter
屬于python标準庫,就不需要使用pip安裝,直接導入使用即可。
① 顯示視窗
-
顯示視窗;root.mainloop()
- 視窗預設會顯示在電腦螢幕的左上角,非常小(後面需要改進);
from tkinter import *
from tkinter import messagebox
# 建立視窗:執行個體化一個視窗對象。
root = Tk()
# 顯示視窗
root.mainloop()
"""
注意到:該視窗預設的顯示位置在哪裡,觀察我下面的截圖。
視窗預設顯示在整個電腦螢幕的左上角,并且視窗大小特别小。
"""
結果如下:
注意:上面2行代碼,首先執行個體化一個視窗對象,然後我們展示了這個視窗,讓其真正顯示出來。接下來我們的操作,就是針對這個視窗的一系列優化操作,請注意:這個優化操作使用的代碼,都是放在這2句代碼中間。
② 設定視窗大小
-
調整視窗的大小;root.geometry("600x400")
- 該方法中傳入的是"寬x高",但是需要注意這個乘号是小寫的英文字母x,而不是這個*表示的乘号;
from tkinter import *
from tkinter import messagebox
# 建立視窗:執行個體化一個視窗對象。
root = Tk()
# 視窗大小
root.geometry("600x450")
# 顯示視窗
root.mainloop()
結果如下:
③ 調整視窗位置(使用的是同一個方法)
-
調整視窗的大小+位置;root.geometry("600x400+374+182")
- 374,182表示的是視窗頂點,距離電腦左上角的坐标。這個數字怎麼得到的呢?直接借助微信截圖就可以顯示了。
操作代碼如下:
from tkinter import *
from tkinter import messagebox
# 建立視窗:執行個體化一個視窗對象。
root = Tk()
# 視窗大小
root.geometry("600x450+374+182")
# 顯示視窗
root.mainloop()
結果如下:
④ 設定視窗的标題
-
設定視窗的标題;root.title()
- 預設的視窗标題是tk;
from tkinter import *
from tkinter import messagebox
# 建立視窗:執行個體化一個視窗對象。
root = Tk()
# 視窗大小
root.geometry("600x450+374+182")
# 視窗标題
root.title("我的個性簽名設計")
# 顯示視窗
root.mainloop()
結果如下:
⑤ 添加标簽控件,并定位
-
添加标簽控件Label(root,text="簽名")
- 第一個參數傳入的就是執行個體化的那個root視窗對象;第二個參數傳入的要顯示的那個标簽文本;
- 僅僅添加标簽控件後,還不行,必須要指定一個位置後,該标簽控件才會真正展示出來,即最後需要調用grid()方法後,才會顯示标簽控件;
from tkinter import *
from tkinter import messagebox
# 建立視窗:執行個體化一個視窗對象。
root = Tk()
# 視窗大小
root.geometry("600x450+374+182")
# 視窗标題
root.title("我的個性簽名設計")
# 添加标簽控件
label = Label(root)
# 定位
label.grid()
# 顯示視窗
root.mainloop()
結果如下:
當然你也可以想到,這個方法肯定還可以修改字型樣式、字型大小、字型顔色呀?具體怎麼操作呢?我們接着往下面看。
from tkinter import *
from tkinter import messagebox
# 建立視窗:執行個體化一個視窗對象。
root = Tk()
# 視窗大小
root.geometry("600x450+374+182")
# 視窗标題
root.title("我的個性簽名設計")
# 添加标簽控件
label = Label(root,text="簽名",font=("宋體",25),fg="red")
"""
text參數用于指定顯示的文本;
font參數用于指定字型大小和字型樣式;
fg參數用于指定字型顔色;
"""
# 定位
label.grid()
# 顯示視窗
root.mainloop()
結果如下:
⑥ 添加輸入框,并定位
-
添加輸入框Entry(root,font=("宋體",25),fg="red")
- 第一個參數傳入的就是執行個體化的那個root視窗對象;第二個參數可寫可不寫,指的是我們輸入的字型的字型樣式和字型大小;第三個參數同樣可寫可不寫,表示的是我們輸入的字型的顔色。
- 同樣,僅僅使用上述代碼并不會顯示輸入框,隻有調用grid()方法,定位後,才會真正顯示這個輸入框;
from tkinter import *
from tkinter import messagebox
# 建立視窗:執行個體化一個視窗對象。
root = Tk()
# 視窗大小
root.geometry("600x450+374+182")
# 視窗标題
root.title("我的個性簽名設計")
# 添加标簽控件
label = Label(root,text="簽名",font=("宋體",25),fg="red")
# 定位
label.grid()
# 添加輸入框
entry = Entry(root,font=("宋體",25),fg="red")
entry.grid()
# 顯示視窗
root.mainloop()
結果如下:
注意:很明顯這樣的擺放方式,并不是我們想要的。我們需要調整一下,下面我們專門花一個小節時間,去講述怎麼調整這個擺放位置。
⑦ 調整控件的擺放位置
首先我們需要搞明白,顯示視窗究竟采用的是什麼樣子的布局方式呢?其實是網格式的布局方式。那麼什麼又是網格式的布局方式呢?excel表格你知道吧,一個個的格子就是網格式的布局方式。
好了!知道了上述原理後,我們現在來真正的調整這個控件擺放位置啦。
from tkinter import *
from tkinter import messagebox
# 建立視窗:執行個體化一個視窗對象。
root = Tk()
# 視窗大小
root.geometry("600x450+374+182")
# 視窗标題
root.title("我的個性簽名設計")
# 添加标簽控件
label = Label(root,text="簽名:",font=("宋體",25),fg="red")
# 定位
label.grid()
"""
label.grid()等價于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語言中,這個下标是從0開始的。
"""
# 顯示視窗
root.mainloop()
結果如下:
⑧ 添加點選按鈕
-
添加輸入框Button(root,text="簽名設計",font=("宋體",25),fg="red")
- 第一個參數傳入的就是執行個體化的那個root視窗對象;第二個參數展示的是我們這個點選按鈕的标簽;第三個參數可寫可不寫,指的是點選按鈕字型的字型樣式和字型大小;第四個參數同樣可寫可不寫,表示的是點選按鈕字型的顔色。
- 同樣,僅僅使用上述代碼并不會顯示輸入框,隻有調用grid()方法,定位後,才會真正顯示這個點選按鈕;
from tkinter import *
from tkinter import messagebox
# 建立視窗:執行個體化一個視窗對象。
root = Tk()
# 視窗大小
root.geometry("600x450+374+182")
# 視窗标題
root.title("我的個性簽名設計")
# 添加标簽控件
label = Label(root,text="簽名:",font=("宋體",25),fg="red")
# 定位
label.grid()
# 添加輸入框
entry = Entry(root,font=("宋體",25),fg="red")
entry.grid(row=0,column=1)
# 添加點選按鈕
button = Button(root,text="簽名設計",font=("宋體",25),fg="blue")
button.grid(row=1,column=1)
# 顯示視窗
root.mainloop()
結果如下:
至此界面已經簡單搭建起來了,接下來要做的就是輸入一個名字,點選簽名設計後,會顯示我的這個簽名,此時就需要借助爬蟲啦!!!
⑨ 點選按鈕自定義功能
這裡最後補充這個知識點,我們點選按鈕後,總是希望能夠給我們傳回點什麼,是以呢,需要我們
自定義函數
。
from tkinter import *
from tkinter import messagebox
def func():
print("我是黃同學")
# 建立視窗:執行個體化一個視窗對象。
root = Tk()
# 視窗大小
root.geometry("600x450+374+182")
# 視窗标題
root.title("我的個性簽名設計")
# 添加标簽控件
label = Label(root,text="簽名:",font=("宋體",25),fg="red")
# 定位
label.grid()
# 添加輸入框
entry = Entry(root,font=("宋體",25),fg="red")
entry.grid(row=0,column=1)
# 添加點選按鈕
button = Button(root,text="簽名設計",font=("宋體",25),fg="blue",command=func)
button.grid(row=1,column=1)
"""
command=func表示調用最開始定義的func函數。
func函數一定要在這句代碼之前,因為這裡需要調用這個func函數。
"""
# 顯示視窗
root.mainloop()
結果如下: