天天看點

你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

請關注公衆号:【資料分析與統計學之美】

本期案例是帶着大家制作一個屬于自己的GUI圖形化界面—>用于設計簽名的哦(效果如下圖),是不是感覺很好玩,是不是很想學習呢?限于篇幅,今天我們首先詳細講述一下​

​Thinter​

​的使用方法。本來不準備詳細講述這個基礎知識,但是我怕那些想學習的同學,學起來不過瘾,還是補充了這一章。

你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

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()
"""
注意到:該視窗預設的顯示位置在哪裡,觀察我下面的截圖。
視窗預設顯示在整個電腦螢幕的左上角,并且視窗大小特别小。
"""      

結果如下:

你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

注意:上面2行代碼,首先執行個體化一個視窗對象,然後我們展示了這個視窗,讓其真正顯示出來。接下來我們的操作,就是針對這個視窗的一系列優化操作,請注意:這個優化操作使用的代碼,都是放在這2句代碼中間。

② 設定視窗大小

  • ​root.geometry("600x400")​

    ​調整視窗的大小;
  • 該方法中傳入的是"寬x高",但是需要注意這個乘号是小寫的英文字母x,而不是這個*表示的乘号;
from tkinter import *
from tkinter import messagebox

# 建立視窗:執行個體化一個視窗對象。
root = Tk()

# 視窗大小
root.geometry("600x450")

# 顯示視窗
root.mainloop()      

結果如下:

你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

③ 調整視窗位置(使用的是同一個方法)

  • ​root.geometry("600x400+374+182")​

    ​調整視窗的大小+位置;
  • 374,182表示的是視窗頂點,距離電腦左上角的坐标。這個數字怎麼得到的呢?直接借助微信截圖就可以顯示了。
你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

操作代碼如下:

from tkinter import *
from tkinter import messagebox

# 建立視窗:執行個體化一個視窗對象。
root = Tk()

# 視窗大小
root.geometry("600x450+374+182")


# 顯示視窗
root.mainloop()      

結果如下:

你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

④ 設定視窗的标題

  • ​root.title()​

    ​設定視窗的标題;
  • 預設的視窗标題是tk;
from tkinter import *
from tkinter import messagebox

# 建立視窗:執行個體化一個視窗對象。
root = Tk()

# 視窗大小
root.geometry("600x450+374+182")

#  視窗标題
root.title("我的個性簽名設計")

# 顯示視窗
root.mainloop()      

結果如下:

你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

⑤ 添加标簽控件,并定位

  • ​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()      

結果如下:

你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

當然你也可以想到,這個方法肯定還可以修改字型樣式、字型大小、字型顔色呀?具體怎麼操作呢?我們接着往下面看。

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()      

結果如下:

你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

⑥ 添加輸入框,并定位

  • ​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()      

結果如下:

你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

注意:很明顯這樣的擺放方式,并不是我們想要的。我們需要調整一下,下面我們專門花一個小節時間,去講述怎麼調整這個擺放位置。

⑦ 調整控件的擺放位置

首先我們需要搞明白,顯示視窗究竟采用的是什麼樣子的布局方式呢?其實是網格式的布局方式。那麼什麼又是網格式的布局方式呢?excel表格你知道吧,一個個的格子就是網格式的布局方式。

你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

好了!知道了上述原理後,我們現在來真正的調整這個控件擺放位置啦。

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()      

結果如下:

你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

⑧ 添加點選按鈕

  • ​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()      

結果如下:

你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

至此界面已經簡單搭建起來了,接下來要做的就是輸入一個名字,點選簽名設計後,會顯示我的這個簽名,此時就需要借助爬蟲啦!!!

⑨ 點選按鈕自定義功能

這裡最後補充這個知識點,我們點選按鈕後,總是希望能夠給我們傳回點什麼,是以呢,需要我們​

​自定義函數​

​。

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()      

結果如下:

你想打造屬于自己的GUI圖形化界面嗎?看看這個文章!

繼續閱讀