Tkinter組件實現(xiàn)Radiobutton的示例
Radiobutton(單選按鈕)組件用于實現(xiàn)多選一的問題。Radiobutton 組件可以包含文本或圖像,每一個按鈕都可以與一個 Python 的函數(shù)或方法與之相關聯(lián),當按鈕被按下時,對應的函數(shù)或方法將被自動執(zhí)行。
Radiobutton 組件僅能顯示單一字體的文本,但文本可以跨越多行。另外,還可以為其中的個別字符加上下劃線(例如用于表示鍵盤快捷鍵)。默認情況下,tab 按鍵被用于在按鈕間切換。
每一組 Radiobutton 組件應該只與一個變量相關聯(lián),然后每一個按鈕表示該變量的單一值。
何時使用 Radiobutton 組件?
Radiobutton 組件是用于實現(xiàn)多選一的問題,它幾乎總是成組地被使用,其中所有成員共用相同的變量。
用法
Radiobutton 組件跟 Checkbutton 組件非常相似,為了實現(xiàn)其“單選”行為,確保一組中的所有按鈕的 variable 選項都使用同一個變量,并使用 value 選項來指定每個按鈕代表什么值:
import tkinter as tk master = tk.Tk() v = tk.IntVar() v.set(2) tk.Radiobutton(master, text="One", variable=v, value=1).pack(anchor="w") tk.Radiobutton(master, text="Two", variable=v, value=2).pack(anchor="w") tk.Radiobutton(master, text="Three", variable=v, value=3).pack(anchor="w") master.mainloop()

如果按鈕(選項)比較多,強烈建議您使用以下方式來初始化 Radiobutton 組件:
import tkinter as tk
master = tk.Tk()
GIRLS = [
("西施", 1),
("王昭君", 2),
("貂蟬", 3),
("楊玉環(huán)", 4)]
v = tk.IntVar()
for girl, num in GIRLS:
b = tk.Radiobutton(master, text=girl, variable=v, value=num)
b.pack(anchor="w")
master.mainloop()
上圖是一個普通的單選按鈕樣式,如果將它的 indicatoron 選項設置為 False,Radiobutton 的樣式就會變成普通按鈕的樣式了:
b = tk.Radiobutton(master, text=girl, variable=v, value=num, indicatoron=False) b.pack(fill="x")

參數(shù)
Radiobutton(master=None, **options) (class)
master -- 父組件
**options -- 組件選項,下方表格詳細列舉了各個選項的具體含義和用法:
| 選項 | 含義 |
| activebackground | 1. 設置當 Radiobutton 處于活動狀態(tài)(通過 state 選項設置狀態(tài))的背景色 2. 默認值由系統(tǒng)指定 |
| activeforeground | 1. 設置當 Radiobutton 處于活動狀態(tài)(通過 state 選項設置狀態(tài))的前景色 2. 默認值由系統(tǒng)指定 |
| anchor | 1. 控制文本(或圖像)在 Radiobutton 中顯示的位置 2. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或者 "center" 來定位(ewsn 代表東西南北,上北下南左西右東) 3. 默認值是 "center" |
| background | 1. 設置背景顏色 2. 默認值由系統(tǒng)指定 |
| bg | 跟 background 一樣 |
| bitmap | 1. 指定顯示到 Radiobutton 上的位圖 2. 如果指定了 image 選項,則該選項被忽略 |
| borderwidth | 1. 指定 Radiobutton 的邊框寬度 2. 默認值由系統(tǒng)指定,通常是 1 或 2 像素 |
| bd | 跟 borderwidth 一樣 |
| command | 1. 指定于該按鈕相關聯(lián)的函數(shù)或方法 2. 當按鈕被按下時由 Tkinter 自動調用對應的函數(shù)或方法 3. 如果不設置此選項,那么該按鈕被按下后啥事兒也不會發(fā)生 |
| compound | 1. 控制 Radiobutton 中文本和圖像的混合模式 2. 默認情況下,如果有指定位圖或圖片,則不顯示文本 3. 如果該選項設置為 "center",文本顯示在圖像上(文本重疊圖像) 4. 如果該選項設置為 "bottom","left","right" 或 "top",那么圖像顯示在文本的旁邊(如 "bottom",則圖像在文本的下方) 5. 默認值是 NONE |
| cursor | 1. 指定當鼠標在 Radiobutton 上飄過的時候的鼠標樣式 2. 默認值由系統(tǒng)指定 |
| disabledforeground | 1. 指定當 Radiobutton 不可用的時候前景色的顏色 2. 默認值由系統(tǒng)指定 |
| font | 1. 指定 Radiobutton 中文本的字體 2. 一個 Radiobutton 只能設置一種字體 3. 默認值由系統(tǒng)指定 |
| foreground | 1. 設置 Radiobutton 的文本和位圖的顏色 2. 默認值由系統(tǒng)指定 |
| fg | 跟 foreground 一樣 |
| height | 1. 設置 Radiobutton 的高度 2. 如果 Radiobutton 顯示的是文本,那么單位是文本單元 3. 如果 Radiobutton 顯示的是圖像,那么單位是像素(或屏幕單元) 4. 如果設置為 0 或者干脆不設置,那么會自動根據(jù) Radiobutton 的內容計算出高度 |
| highlightbackground | 1. 指定當 Radiobutton 沒有獲得焦點的時候高亮邊框的顏色 2. 默認值由系統(tǒng)指定,通常是標準背景顏色 |
| highlightcolor | 1. 指定當 Radiobutton 獲得焦點的時候高亮邊框的顏色 2. 默認值由系統(tǒng)指定 |
| highlightthickness | 1. 指定高亮邊框的寬度 2. 默認值由系統(tǒng)指定,通常是 1 或 2 像素 |
| image | 1. 指定 Radiobutton 顯示的圖片 2. 該值應該是 PhotoImage,BitmapImage,或者能兼容的對象 3. 該選項優(yōu)先于 text 和 bitmap 選項 |
| indicatoron | 1. 指定前邊作為選擇的小圓圈是否繪制 2. 默認是繪制的 3. 該選項會影響到按鈕的樣式,如果設置為 False,則點擊后該按鈕變成 "sunken"(凹陷),再次點擊變?yōu)?"raised"(凸起) |
| justify | 1. 定義如何對齊多行文本 2. 使用 "left","right" 或 "center" 3. 注意,文本的位置取決于 anchor 選項 4. 默認值是 "center" |
| padx | 1. 指定 Radiobutton 水平方向上的額外間距(內容和邊框間) 2. 默認值是 1 |
| pady | 1. 指定 Radiobutton 垂直方向上的額外間距(內容和邊框間) 2. 默認值是 1 |
| relief | 1. 指定邊框樣式 2. 可以設置 "sunken","raised","groove","ridge" 或 "flat" 3. 如果 indicatoron 選項設置為 True,則默認值是 "flat",否則為 "raised" |
| selectcolor | 1. 選擇框的顏色 2. 默認值由系統(tǒng)指定 |
| selectimage | 1. 設置當 Radiobutton 為選中狀態(tài)的時候顯示的圖片 2. 如果沒有指定 image 選項,該選項被忽略 |
| state | 1. 指定 Radiobutton 的狀態(tài) 2. 默認值是 "normal" 3. 另外你還可以設置 "active" 或 "disabled" |
| takefocus | 1. 如果是 True,該組件接受輸入焦點(用戶可以通過 tab 鍵將焦點轉移上來) 2. 默認值是 False |
| text | 1. 指定 Radiobutton 顯示的文本 2. 文本可以包含換行符 3. 如果設置了 bitmap 或 image 選項,該選項則被忽略 |
| textvariable | 1. Radiobutton 顯示 Tkinter 變量(通常是一個 StringVar 變量)的內容 2. 如果變量被修改,Radiobutton 的文本會自動更新 |
| underline | 1. 跟 text 選項一起使用,用于指定哪一個字符畫下劃線(例如用于表示鍵盤快捷鍵) 2. 默認值是 -1 3. 例如設置為 1,則說明在 Radiobutton 的第 2 個字符處畫下劃線 |
| value | 1. 標志該單選按鈕的值 2. 在同一組中的所有按鈕應該擁有各不相同的值 3. 通過將該值與 variable 選項的值對比,即可判斷用戶選中了哪個按鈕 |
| variable | 1. 與 Radiobutton 組件關聯(lián)的變量 2. 同一組中的所有按鈕的 variable 選項應該都指向同一個變量 3. 通過將該變量與 value 選項的值對比,即可判斷用戶選中了哪個按鈕 |
| width | 1. 設置 Radiobutton 的寬度 2. 如果 Radiobutton 顯示的是文本,那么單位是文本單元 3. 如果 Radiobutton 顯示的是圖像,那么單位是像素(或屏幕單元) 4. 如果設置為 0 或者干脆不設置,那么會自動根據(jù) Radiobutton 的內容計算出寬度 |
| wraplength | 1. 決定 Radiobutton 的文本應該被分成多少行 2. 該選項指定每行的長度,單位是屏幕單元 3. 默認值是 0 |
方法
deselect()
-- 取消該按鈕的選中狀態(tài)。
flash()
-- 刷新 Radiobutton 組件,該方法將重繪 Radiobutton 組件若干次(在"active" 和 "normal" 狀態(tài)間切換)。
-- 該方法在調試的時候很有用,也可以使用此方法提醒用戶激活了該按鈕。
invoke()
-- 調用 Radiobutton 中 command 選項指定的函數(shù)或方法,并返回函數(shù)的返回值。
-- 如果 Radiobutton 的 state(狀態(tài))"disabled"是 (不可用)或沒有指定 command 選項,則該方法無效。
select()
-- 將 Radiobutton 組件設置為選中狀態(tài)。
到此這篇關于Tkinter組件實現(xiàn)Radiobutton的示例的文章就介紹到這了,更多相關Tkinter Radiobutton內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python實現(xiàn)根據(jù)主機名字獲得所有ip地址的方法
這篇文章主要介紹了python實現(xiàn)根據(jù)主機名字獲得所有ip地址的方法,涉及Python解析IP地址的相關技巧,需要的朋友可以參考下2015-06-06
基于python實現(xiàn)MQTT發(fā)布訂閱過程原理解析
這篇文章主要介紹了基于python實現(xiàn)MQTT發(fā)布訂閱過程原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07
Python使用內置函數(shù)setattr設置對象的屬性值
這篇文章主要介紹了Python使用內置函數(shù)setattr設置對象的屬性值,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10

