Tkinter常用控制項和屬性
我們知道,一個完整的 GUI 程式,其實是由有許多小的控制項(widgets)構成的,比如按鈕、文字方塊、輸入框、選擇框、功能表列等等。在學習 Tkinter GUI 程式設計的過程中,不僅要學會如何擺放這些控制項,還是掌握各種控制項的功能、屬性,只有這樣才能開發出一個介面設計優雅,功能設計完善的 GUI 程式。
在創作本套教程的過程中,我們以控制項的功能、屬性作為切入點進行講解。只有瞭解了控制項的基本功能,才能在程式設計時得心應手。
控制項類型
下表列出了 Tkinter 中常用的 15 個控制項:
控制項類型 |
控制項名稱 |
控制項作用 |
Button |
按鈕 |
點擊按鈕時觸發/執行一些事件(函數) |
Canvas |
畫布 |
提供繪製圖,比如直線、矩形、多邊形等 |
Checkbutton |
核取方塊 |
多項選擇按鈕,用於在程式中提供多項選擇框 |
Entry |
文字方塊輸入框 |
用於接收單行文本輸入 |
Frame |
框架(容器)控制項 |
定義一個表單(根視窗也是一個表單),用於承載其他控制項,即作為其他控制項的容器 |
Lable |
標籤控制項 |
用於顯示單行文本或者圖片 |
LableFrame |
容器控制項 |
一個簡單的容器控制項,常用於複雜的視窗佈局。 |
Listbox |
清單方塊控制項 |
以清單的形式顯示文本 |
Menu |
功能表控制項 |
功能表元件(下拉式功能表和彈出菜單) |
Menubutton |
功能表按鈕控制項 |
用於顯示功能表項目 |
Message |
資訊控制項 |
用於顯示多行不可編輯的文本,與 Label控制項類似,增加了自動分行的功能 |
messageBox |
訊息方塊控制項 |
定義與使用者交互的消息對話方塊 |
OptionMenu |
選項功能表 |
下拉式功能表 |
PanedWindow |
視窗佈局管理元件 |
為元件提供一個框架,允許使用者自己劃分視窗空間 |
Radiobutton |
單選框 |
單項選擇按鈕,只允許從多個選項中選擇一項 |
Scale |
進度條控制項 |
定義一個線性“滑塊”用來控制範圍,可以設定起始值和結束值,並顯示當前位置的精確值 |
Spinbox |
高級輸入框 |
Entry 控制項的升級版,可以通過該元件的上、下箭頭選擇不同的值 |
Scrollbar |
捲軸 |
預設垂直方向,滑鼠拖動改變數值,可以和 Text、Listbox、Canvas等控制項配合使用 |
Text |
多行文字方塊 |
接收或輸出多行文本內容 |
Toplevel |
子窗口 |
在創建一個獨立於主視窗之外的子視窗,位於主視窗的上一層,可作為其他控制項的容器 |
在後續內容中,我們會陸續對上表中涉及的控制項進行介紹。當然,除了上述控制項外,還有一些高級控制項,比如 PanedWindow、messagebox、LableFrame、Spinbox,在後續章節也會講解。
控制項基本屬性
從上表來看,每個控制項都有著各自不同的功能,即使有些控制項功能相似,但它們的適用場景也不同。
在 Tkinter 中不同的控制項受到各自參數的約束(即參數),所有控制項既有相同屬性,也有各自獨有的屬性。本節內容,先對這些控制項的共用屬性做簡單介紹,如下表所示:
屬性名稱 |
說明 |
anchor |
定義控制項或者文字資訊在視窗內的位置 |
bg |
bg 是 background 的縮寫,用來定義控制項的背景顏色,參數值可以顏色的十六進位數,或者顏色英文單詞 |
bitmap |
定義顯示在控制項內的點陣圖檔 |
borderwidth |
定於控制項的邊框寬度,單位是圖元 |
command |
該參數用於執行事件函數,比如按一下按鈕時執行特定的動作,可將執行使用者自訂的函數 |
cursor |
當滑鼠指標移動到控制項上時,定義滑鼠指標的類型,字元換格式,參數值有
crosshair(十字游標)watch(待載入圓圈)plus(加號)arrow(箭頭)等 |
font |
若控制項支援設置標題文字,就可以使用此屬性來定義,它是一個陣列格式的參數
(字體,大小,字體樣式) |
fg |
fg 是 foreground 的縮寫,用來定義控制項的前景色,也就是字體的顏色 |
height |
該參數值用來設置控制項的高度,文本控制項以字元的數目為高度(px),其他控制項則以圖元為單位 |
image |
定義顯示在控制項內的圖片檔 |
justify |
定義多行文字的排列方式,此屬性可以是 LEFT/CENTER/RIGHT |
padx/pady |
定義控制項內的文字或者圖片與控制項邊框之間的水準/垂直距離 |
relief |
定義控制項的邊框樣式,參數值為FLAT(平的)/RAISED(凸起的)/SUNKEN(凹陷的)/GROOVE(溝槽樁邊緣)/RIDGE(脊狀邊緣) |
text |
定義控制項的標題文字 |
state |
控制控制項是否處於可用狀態,參數值預設為 NORMAL/DISABLED,默認為 NORMAL(正常的) |
width |
用於設置控制項的寬度,使用方法與 height 相同 |
沒有留言:
張貼留言