import tkinter
from tkinter import messagebox
def showMsg():
i = radio_v.get()
messagebox.showinfo('選取結果', '您最想去的國家為: '+country[i])
win = tkinter.Tk()
win.title('最想要旅遊的國家調查')
win.geometry('300x150')
label = tkinter.Label(win, text='請選取你想要去的國家: ').pack()
country = {0: '土耳其', 1: '英國', 2: '日本', 3: '埃及'}
radio_v = tkinter.IntVar()
radio_v.set(0)
for i in range(len(country)):
tkinter.Radiobutton(win, text=country[i],variable=radio_v,value=i).pack()
tkinter.Button(win, text='確定', command=showMsg).pack()
win.mainloop()
想請教一下,這個範例中當按下其中一個選項按鈕時,variable會有怎樣的變化,跟value有關係嗎? 還有為什麼Checkbutton沒有像Radiobutton一樣有value這個參數呢?
你按第一個國家,他抓到的是1 ^3^
Radiobutton 因為他可能有很多值,依你題目,他有4個國家(0-3)
checkbutton 永遠只有兩個值,true 或 false。
但其實兩者都有value這個參數,只是名稱不同而已。
checkbutton的value 稱為chkValue
這個文章給您參考
checkbox只有單一變數,要嘛True不然False
chkValue = tk.BooleanVar() #布林
chkValue.set(True)
chkExample = tk.Checkbutton(app, text='Check Box', var=chkValue)
chkExample.grid(column=0, row=0)
RadioBox是一個變數多個選項(看你放幾個),就不會是只有True/False,就看選在那一項就是哪一個value了
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")