首頁 > 軟體

Python+Tkinter製作專屬圖形化介面

2022-04-01 13:01:48

介紹

本期案例是帶著大家制作一個屬於自己的GUI圖形化介面—>用於設計簽名的哦(效果如下圖),是不是感覺很好玩,是不是很想學習呢?限於篇幅,今天我們首先詳細講述一下Tkinter的使用方法。本來不準備詳細講述這個基礎知識,但是我怕那些想學習的同學,學起來不過癮,還是補充了這一章。

tkinter的簡單應用

Tkinter是Python的標準GUI庫。Python使用Tkinter可以快速地建立GUI應用程式。當然常用的GUI庫還有PyQt5,我們只需要知道這兩個常用的即可,如果你真的想學習的話。由於Tkinter屬於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()

結果如下:

以上就是Python+Tkinter製作專屬圖形化介面的詳細內容,更多關於Python Tkinter圖形化介面的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com