Tk - 控制元件概述



基於Tk的應用程式的基本元件稱為控制元件(widget)。元件有時也稱為視窗,因為在Tk中,“視窗”和“控制元件”通常可以互換使用。Tk是一個包,它提供了一套豐富的圖形元件,用於使用Tcl建立圖形應用程式。

Tk提供了一系列控制元件,範圍從按鈕和選單等基本GUI控制元件到資料顯示控制元件。這些控制元件高度可配置,因為它們具有預設配置,使用起來非常方便。

Tk應用程式遵循控制元件層次結構,其中任意數量的控制元件可以放置在另一個控制元件內,而這些控制元件又可以放置在另一個控制元件內。Tk程式中的主控制元件稱為根控制元件,可以透過建立TkRoot類的新的例項來建立。

建立控制元件

建立控制元件的語法如下所示。

type variableName arguments options

此處的型別指的是控制元件型別,例如按鈕、標籤等等。引數可以是可選的,也可以是必需的,這取決於每個控制元件的個體語法。選項範圍從每個元件的大小到格式。

控制元件命名約定

控制元件使用類似於命名包的結構。在Tk中,根視窗的名稱以句點(.)開頭,然後是視窗中的元素,例如按鈕的名稱為.myButton1。變數名應以小寫字母、數字或標點符號(句點除外)開頭。第一個字元之後,其他字元可以是大寫或小寫字母、數字或標點符號(句點除外)。建議使用小寫字母作為標籤的開頭。

顏色命名約定

可以使用名稱(如紅色、綠色等)宣告顏色。也可以使用十六進位制表示法,例如#。十六進位制數字的個數可以是3、6、9或12。

尺寸約定

預設單位是畫素,當我們沒有指定尺寸時使用。其他尺寸單位包括i(英寸)、m(毫米)、c(釐米)和p(磅)。

常用選項

所有控制元件都有很多常用選項,它們列在下表中:

序號 語法和描述
1

-background color

用於設定控制元件的背景顏色。

2

-borderwidth width

用於繪製具有3D效果的邊框。

3

-font fontDescriptor

用於設定控制元件的字型。

4

-foreground color

用於設定控制元件的前景色。

5

-height number

用於設定控制元件的高度。

6

-highlightbackground color

用於設定當控制元件沒有輸入焦點時在其周圍繪製的顏色矩形。

7

-highlightcolor color

用於設定當控制元件有輸入焦點時在其周圍繪製的顏色矩形。

8

-padx number

設定控制元件的padx。

9

-pady number

設定控制元件的pady。

10

-relief condition

設定此控制元件的3D浮雕效果。條件可以是raised、sunken、flat、ridge、solid或groove。

11

-text text

設定控制元件的文字。

12

-textvariable varName

與控制元件關聯的變數。當控制元件的文字發生更改時,變數將設定為控制元件的文字。

13

-width number

設定控制元件的寬度。

下面顯示了一個簡單的選項示例。

#!/usr/bin/wish

grid [label .myLabel -background red -text "Hello World" -relief ridge -borderwidth 3]
   -padx 100 -pady 100

執行上述程式後,我們將得到以下輸出。

Hello World Options

可用控制元件的列表如下分類:

基本控制元件

序號 控制元件和描述
1

Label(標籤)

用於顯示單行文字的控制元件。

2

Button(按鈕)

可點選並觸發操作的控制元件。

3

Entry(輸入框)

用於接受單行文字作為輸入的控制元件。

4

Message(訊息框)

用於顯示多行文字的控制元件。

5

Text(文字框)

用於顯示和(可選)編輯多行文字的控制元件。

6

Toplevel(頂級視窗)

帶有視窗管理器提供的所有邊框和裝飾的視窗。

佈局控制元件

序號 控制元件和描述
1

Frame(框架)

用於容納其他控制元件的容器控制元件。

2

Place(定位)

用於在特定位置容納其他控制元件,帶有其原點的座標和精確大小的控制元件。

3

Pack(填充)

簡單的控制元件,用於在將控制元件放置到父控制元件之前,將控制元件組織成塊。

4

Grid(網格)

用於巢狀控制元件,以不同方向打包控制元件的控制元件。

選擇控制元件

序號 控制元件和描述
1

Radiobutton(單選按鈕)

具有組開關按鈕和標籤的控制元件,其中只能選擇一個。

2

Checkbutton(複選框)

具有組開關按鈕和標籤的控制元件,可以選擇多個。

3

Menu(選單)

用作選單項容器的控制元件。

4

Listbox(列表框)

顯示單元列表的控制元件,可以選擇一個或多個單元。

Mega 控制元件

序號 控制元件和描述
1

Dialog(對話方塊)

用於顯示對話方塊的控制元件。

2

Spinbox(旋轉框)

允許使用者選擇數字的控制元件。

3

Combobox(組合框)

將輸入框與使用者可用的選項列表組合的控制元件。

4

Notebook(筆記本)

選項卡式控制元件,有助於使用索引選項卡在多個頁面之間切換。

5

Progressbar(進度條)

用於向檔案上傳等長時間操作的進度提供視覺反饋的控制元件。

6

Treeview(樹形檢視)

用於顯示和允許瀏覽樹狀形式的項層次結構的控制元件。

7

Scrollbar(捲軸)

沒有文字或畫布控制元件的滾動控制元件。

8

Scale(滑塊)

透過滑塊選擇數值的滑塊控制元件。

其他控制元件

序號 控制元件和描述
1

Canvas(畫布)

用於顯示圖形和影像的繪圖控制元件。

我們將在接下來的章節中介紹每個控制元件。

廣告