Tkinter 單選按鈕



此控制元件實現了一個多選按鈕,這是一種向用戶提供多種選擇並允許使用者僅選擇其中一種的方式。

為了實現此功能,每個單選按鈕組必須關聯到同一個變數,並且每個按鈕必須代表一個單獨的值。您可以使用 Tab 鍵在各個單選按鈕之間切換。

語法

以下是建立此控制元件的簡單語法:

w = Radiobutton ( master, option, ... )

引數

  • master - 表示父視窗。

  • options - 以下是此控制元件最常用的選項列表。這些選項可用作以逗號分隔的鍵值對。

序號 選項和描述
1

activebackground

滑鼠懸停在單選按鈕上時的背景顏色。

2

activeforeground

滑鼠懸停在單選按鈕上時的前景色。

3

anchor

如果控制元件佔據的空間大於其所需空間,此選項指定單選按鈕在該空間中的位置。預設值為 anchor=CENTER。

4

bg

指示器和標籤後面的普通背景顏色。

5

bitmap

要在單選按鈕上顯示單色影像,請將此選項設定為點陣圖。

6

borderwidth

指示器部分周圍邊框的大小。預設為 2 畫素。

7

command

每次使用者更改此單選按鈕的狀態時要呼叫的過程。

8

cursor

如果將此選項設定為游標名稱(箭頭、點等),則當滑鼠懸停在單選按鈕上時,滑鼠游標將更改為該圖案。

9

font

用於文字的字型。

10

fg

用於渲染文字的顏色。

11

height

單選按鈕上文字的行數(非畫素數)。預設為 1。

12

highlightbackground

單選按鈕未獲得焦點時的焦點高亮顏色。

13

highlightcolor

單選按鈕獲得焦點時的焦點高亮顏色。

14

image

要為此單選按鈕顯示圖形影像而不是文字,請將此選項設定為影像物件。

15

justify

如果文字包含多行,此選項控制文字的對齊方式:CENTER(預設值)、LEFT 或 RIGHT。

16

padx

在單選按鈕和文字的左側和右側留出多少空間。預設為 1。

17

pady

在單選按鈕和文字的上方和下方留出多少空間。預設為 1。

18

relief

指定標籤周圍裝飾性邊框的外觀。預設為 FLAT;對於其他值。

19

selectcolor

設定單選按鈕時的顏色。預設為紅色。

20

selectimage

如果使用 image 選項在單選按鈕清除時顯示圖形而不是文字,則可以將 selectimage 選項設定為不同的影像,該影像將在單選按鈕設定時顯示。

21

state

預設為 state=NORMAL,但可以設定 state=DISABLED 以使控制元件變灰並使其無響應。如果游標當前位於單選按鈕上,則狀態為 ACTIVE。

22

text

顯示在單選按鈕旁邊的標籤。使用換行符 ("\n") 顯示多行文字。

23

textvariable

要將標籤部件中顯示的文字與 StringVar 類的控制變數關聯,請將此選項設定為該變數。

24

下劃線

透過將此選項設定為 n,可以在文字的第 n 個字母(從 0 開始計數)下顯示下劃線 (_) 。預設值為 underline=-1,表示沒有下劃線。

25

當用戶開啟單選按鈕時,其控制變數將設定為其當前值選項。如果控制變數是 IntVar,請為組中的每個單選按鈕賦予不同的整數值選項。如果控制變數是 StringVar,請為每個單選按鈕賦予不同的字串值選項。

26

變數

此單選按鈕與組中其他單選按鈕共享的控制變數。這可以是 IntVar 或 StringVar。

27

寬度

標籤的寬度(以字元為單位,而不是畫素!)。如果未設定此選項,則標籤的大小將調整為適合其內容。

28

換行長度

可以透過將此選項設定為所需數字來限制每行中的字元數。預設值 0 表示僅在換行符處換行。

方法

可以使用以下方法。

序號 方法及說明
1

deselect()

清除(關閉)單選按鈕。

2

flash()

將單選按鈕在其活動顏色和普通顏色之間閃爍幾次,但保持其初始狀態不變。

3

invoke()

您可以呼叫此方法來獲得與使用者單擊單選按鈕以更改其狀態時相同的操作。

4

select()

設定(開啟)單選按鈕。

示例

請嘗試以下示例:

from tkinter import *

def sel():
   selection = "You selected the option " + str(var.get())
   label.config(text = selection)
root = Tk()
var = IntVar()
R1 = Radiobutton(root, text="Option 1", variable=var, value=1, command=sel)
R1.pack( anchor = W )
R2 = Radiobutton(root, text="Option 2", variable=var, value=2, command=sel)
R2.pack( anchor = W )
R3 = Radiobutton(root, text="Option 3", variable=var, value=3, command=sel)
R3.pack( anchor = W)
label = Label(root)
label.pack()
root.mainloop()

執行上述程式碼後,將產生以下輸出

tkinter radiobutton
python_gui_programming.htm
廣告