單選按鈕是一種可在多個預先定義的選項中選擇出一項的 Tkinter 控件. 單選按鈕可顯示文字或圖片. 顯示文字時只能使用預設字體. 該控件可以綁定一個 Python 函數或方法, 當單選按鈕被選擇時, 該函數或方法將被調用. 單選按鈕 (Radio Button) 這個名字來源于收音機 (Radio) 上的調頻按鈕, 這些按鈕用來選擇特定波段或預設電臺. 如果一個按鈕被按下, 其他同類的按鈕就會彈起, 即同時只有一個按鈕可被按下. 一組單選按鈕控件和同一個變量關聯. 點擊其中一個單選按鈕將把這個變量設為某個預定義的值.
上面代碼輸出如下窗口: 
很多情況下, 單選按鈕項目將不止是兩項. 在選項很多時, 逐個生成單選項的方法就顯得太笨了. 解決辦法如下例中所示, 我們預先定義了一個 list, 其元素中包含了按鈕文本及其對應的選項值. 這樣我們就可以用一個循環來建立這組單選按鈕了.
from Tkinter import *root = Tk()v = IntVar()v.set(1) # initializing the choice, i.e. Pythonlanguages = [ ("Python",1), ("Perl",2), ("java",3), ("C++",4), ("C",5)]def ShowChoice(): print v.get()Label(root, text="""Choose your favourite programming language:""", justify = LEFT, padx = 20).pack()for txt, val in languages: Radiobutton(root, text=txt, padx = 20, variable=v, command=ShowChoice, value=val).pack(anchor=W)mainloop()上例運行后將顯示如下窗口: 
除了使用默認的空心圓形作為選項條目, 我們也可以用一個文本框來展示選項. 將 indicatoron 選項設置為 0 即可達到該目的: 這表示單選按鈕不會有額外的單選指示器. 我們將上例中 Radiobutton 的創建代碼修改如下:
在上面的代碼中, 我們使用了 indicatoron 參數 和 width 參數. 上例運行顯示如下: 
已獲得原作者授權. 原文地址
新聞熱點
疑難解答