2022年11月17日 星期四

Python Tkinter常用控制項和屬性

 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

捲軸

預設垂直方向,滑鼠拖動改變數值,可以和 TextListboxCanvas等控制項配合使用

Text

多行文字方塊

接收或輸出多行文本內容

Toplevel

子窗口

在創建一個獨立於主視窗之外的子視窗,位於主視窗的上一層,可作為其他控制項的容器


在後續內容中,我們會陸續對上表中涉及的控制項進行介紹。當然,除了上述控制項外,還有一些高級控制項,比如 PanedWindowmessageboxLableFrameSpinbox,在後續章節也會講解。

控制項基本屬性

從上表來看,每個控制項都有著各自不同的功能,即使有些控制項功能相似,但它們的適用場景也不同。

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 相同

沒有留言:

張貼留言

WOKWI LED + MQTT Node-Red SQLite

WOKWI LED + MQTT Node-Red SQLite const char *mqtt_broker = "broker.mqtt-dashboard.com" ; const char *topic1 = "alex9ufo/e...