Python Tkinter Radiobutton單選按鈕
-
Radiobutton小部件用於在python應用程序中實現一個多選項。它向用戶顯示多個選項,用戶只能從中選擇一個。我們可以將不同的方法與每個單選按鈕相關聯
-
我們可以在radiobuttons上顯示多行文本或圖像。為了跟蹤用戶對radiobutton的選擇,它與單個變量相關聯。每個按鈕顯示該特定變量的單個值
-
語法
rb = Radiobutton(top, options)
- 可能的選項
| 選項 | 描述 |
|---|---|
| activebackground | 具有焦點時窗口小部件的背景顏色 |
| activeforeground | 具有焦點時窗口小部件文本的字體顏色 |
| anchor | 如果窗口小部件包含的空間大於文本要求,則它表示窗口小部件中文本的確切位置。默認值為CENTER |
| bg | 小部件的背景顏色。 |
| bitmap | 用於顯示小部件上的圖形。它可以設置為任何圖形或圖像對象 |
| borderwidth | 它表示邊框的大小。 |
| command | 此選項設置為每當更改單選按鈕的狀態時必須調用的過程 |
| cursor | 鼠標指針變為指定的光標類型。它可以設置為箭頭,點等。 |
| font | 它表示窗口小部件文本的字體類型 |
| text | 要在radiobutton上顯示的文本。 |
| fg | 小部件文本的正常前景色 |
| width | 小部件的水平尺寸。它表示為字符數 |
| height | 小部件的垂直尺寸。它被指定為行數(不是像素) |
| highlightcolor | 它表示窗口小部件具有焦點時焦點突出顯示的顏色。 |
| highlightbackground | 當窗口小部件沒有焦點時,焦點的顏色突出顯示 |
| image | 如果我們想在radiobutton上顯示圖像而不是文本,可以將其設置為圖像對象 |
| justify | 它代表了多行文本的正當性。它可以設置為CENTER(默認),LEFT或RIGHT。 |
| padx | 小部件的水平填充。 |
| pady | 小部件的垂直填充 |
| relief | 邊界的類型。默認值為FLAT |
| selectcolor | 選中時單選按鈕的顏色 |
| selectimage | 選擇時在radiobutton上顯示的圖像。 |
| state | 它表示單選按鈕的狀態。 Radiobutton的默認狀態為NORMAL。但是,我們可以將其設置為DISABLED以使radiobutton無響應。 |
| textvariable | 它是String類型,表示小部件顯示的文本 |
| underline | 此選項的默認值為-1,但是,我們可以將此選項設置為要加下划線的字符數 |
| value | 每個radiobutton的值在用戶打開時分配給控制變量。 |
| variable | 它是控制變量,用於跟蹤用戶的選擇。它在所有radiobutton之間共享。 |
| wraplength | 我們可以通過將此選項設置為所需的數字來將文本換行到行數,以便每行只包含該數量的字符。 |
- 方法
- radiobutton小部件提供以下方法。
| 方法 | 描述 |
|---|---|
| deselect() | 用於轉動單選按鈕。 |
| flash() | 用於在有效和正常顏色之間閃爍幾次無線電按鈕 |
| invoke() | 它用於調用Radiobutton狀態更改時關聯的任何過程 |
| select() | 用於選擇radiobutton。 |
- 示例
from tkinter import *
def selection():
selection = "You selected the option " + str(radio.get())
label.config(text = selection)
root = Tk()
root.geometry("300x150")
radio = IntVar()
lbl = Label(text = "Favourite programming language:")
lbl.pack()
R1 = Radiobutton(root, text="C", variable=radio, value=1, command=selection)
R1.pack( anchor = W )
R2 = Radiobutton(root, text="C++", variable=radio, value=2, command=selection)
R2.pack( anchor = W )
R3 = Radiobutton(root, text="Java", variable=radio, value=3, command=selection)
R3.pack( anchor = W)
label = Label(root)
label.pack()
root.mainloop()
- 輸出

