前言
此篇文章介紹的是有關GUI(Graphical User Interface)圖形使用者介面的設計。使用到的庫是tkinter,tkinter庫在python3版本開始就是自帶的庫,IDLE就是透過這個庫設計的。再過幾天會更新其他內容(輸入框、捲軸、分頁、多行文字、下拉框)。
相關介紹Python GUI程式設計(Tkinter)-菜鳥教程
Python Tkinter Wiki
Tk圖形使用者介面(GUI)
一、函式方法介紹下面的函式方法是基於import tkinter和from tkinter import ttk的匯入來的。如果你使用的是imort tkinter as tk這種的,將下面的tkinter替換成你所定義的別名就行。
函式方法中有些方法只是簡單介紹,詳細的內容會在之後的步驟提及。
二、匯入tkinter庫通常匯入的話使用下面第一行程式碼進行匯入就行
import tkinter
但對於某些功能時,需要匯入一個ttk模組
[1]. 建立
建立視窗的方法比較簡單,執行tkinter.Tk()即可。
因為我們需要對這個視窗進行操作,所以得用一個例項物件來儲存這個視窗。
import tkinterwindow = tkinter.Tk()
[2]. 設定標題
上一個步驟執行完畢後,預設會給視窗設定一個名為tk的標題。如果我們需要設定自定義的標題時,就得用到title方法。
import tkinterwindow = tkinter.Tk()window.title('標題')
[3]. 設定大小
在設定大小時,使用geometry方法,引數裡的x是英文字母,大小寫不會有影響。
對於200x300的大小,第一個引數200是寬度,第二個引數300是高度。如果沒有設定視窗大小時,預設大小為200x200
import tkinterwindow = tkinter.Tk()window.title('標題')window.geometry('200x300')
[4]. 設定背景色使用configure方法設定background引數的值,來改變背景色。
改變背景色時傳入的引數大小寫皆可
import tkinterwindow = tkinter.Tk()window.title('標題')window.geometry('200x300')window.configure(background='BlUe')
[5]. 刪除視窗
使用
import tkinterwindow = tkinter.Tk()window.title('標題')window.geometry('200x300')window.configure(background='BlUe')window.destroy()
四、按鈕
步驟[2]和步驟[3]放置按鈕的方法對其他元件是通用的。
[1]. 建立
和視窗不同,其他元件建立時不會直接將元件放置到視窗中。
button = tkinter.Button(window,text='退出',command=lambda:window.destroy(),width=3,height=2)
[2]. 放置按鈕(絕對位置)
橫軸和縱軸座標是必須給定的,而錨點引數anchor可以省略不填,但對於特殊的應用場景就得使用到anchor引數來設定錨點了。
import tkinterwindow = tkinter.Tk()window.title('標題')window.geometry('200x300')button = tkinter.Button(window,text='退出',command=lambda:window.destroy(),width=5,height=2)##button.place(x=40,y=90,anchor='nw') #絕對位置,放置按鈕button.place(relx=1,rely=1,anchor='se')#相對位置,放置按鈕
五、單行文字
[1]. 建立
如果傳入的顏色或者是文字內容是需要輸入獲取時,可以將等號後面的內容替換成對應的字串變數
text = tkinter.Label(window,bd=4,fg='red',bg='white',text='內容111111111111111')
[2]. 程式碼
import tkinterwindow = tkinter.Tk()window.title('標題')window.geometry('200x200')text = tkinter.Label(window,bd=4,fg='red',bg='white',text='內容111111111111111')##text.place(x=20,y=50) #絕對位置,放置文字text.place(relx=0.2,rely=0.2) #相對位置,放置文字