通常設計輸入介面時,如果在多個選項中只能挑選其中一項時,我們可以使用選項按鈕元件來設計。只要其中一個選項按鈕被選取,則其他選項按鈕自動變成不被選取。下圖是「接龍」遊戲中「選項」的設定畫面,其中「發牌」群組中「發一張牌」、「發三張牌」只能二選一。

「計分」群組則只能三選一。

建立Radiobutton的語法如下:

物件變數 = tkinter.Radiobutton(容器物件, [參數1=值1, 參數2=值2, …])

Radiobutton可使用Label提供的參數,下表是Radiobutton常用的參數說明:

參數說明
value代表選項按鈕的值。
command選項按鈕狀態改變時會執行 command 所指定的函式。使用方式與按鈕相同。
textvariable代表選項按鈕的文字物件,用來存取選項按鈕上的文字。使用時必須先透過 tkinter 模組的 IntVar()DoubleVar()StringVar()BooleanVar() 方法定義選項按鈕代表文字物件要使用資料型別。使用方式和文字方塊的 textvariable 相同。
variable指定選項按鈕的變數,可用來存取選項按鈕的狀態,同一群組的選項按鈕名稱要設為相同。

如下寫法,建立性別選項按鈕有 ‘男’ 和 ‘女’ 選項,‘男’ 選項的值為 ‘先生’,‘女’ 選項的值為 ‘小姐’,選項按鈕群組的變數為 gender,預設選取為 ‘男’ 選項(值為 ‘先生’)。

gender.set('先生')
radM=tk.Radiobutton(win,text='男',variable=gender,value='先生');
radF=tk.Radiobutton(win,text='女',variable=gender,value='小姐');
image使用圖片代表選項按鈕的選項內容。可參考 11.9 節。

[簡例] 使用文字方塊與選項按鈕製作個人簡歷表,文字方塊用來讓使用者填入姓名,選項按鈕用來讓使用者指定性別與學歷資訊。 (檔名:radiobutton01.py)

[結果]

說明

  1. 28行:建立eduAry[0]~eduAry[4]串列元素值依序為「國小」、「國中」、「高中職」、「大學」、「碩博士」。
  2. 2930行:使用迴圈建立國小,國中,高中職,大學,碩博士的選項按鈕,這五個選項按鈕的value值為04,選項按鈕變數為edu

相關主題與延伸閱讀