- Checkbutton
- 請選擇你的興趣
- 1.聽音樂 2.打球 3.看電視
- 使用者選擇後即在下方顯示
- 您的興趣為: 使用者選的興趣列出來
先放介面
import tkinter as tk
yrwin=tk.Tk()
msglabel=tk.StringVar()
mylabel=tk.Label(yrwin,text="請選擇您的興趣:")
mylabel.pack()
mychkbtn=tk.Checkbutton(yrwin,text="聽音樂",variable=0)
mychkbtn.pack()
mychkbtn=tk.Checkbutton(yrwin,text="打球",variable=1)
mychkbtn.pack()
mychkbtn=tk.Checkbutton(yrwin,text="看電視",variable=2)
mychkbtn.pack()
mylabel=tk.Label(yrwin,textvariable=msglabel)
mylabel.pack()
yrwin.mainloop()
使用for迴圈寫法
import tkinter as tk
yrwin=tk.Tk()
ch=[]
like=["聽音樂","打球","看電視"]
msglabel=tk.StringVar()
mylabel=tk.Label(yrwin,text="請選擇您的興趣:")
mylabel.pack()
for i in range(0,len(like)):
num=tk.IntVar() #每次都會產生動態不一樣的值
print(num)
ch.append(num) #加到ch 陣列中
mychkbtn=tk.Checkbutton(yrwin,text=like[i],variable=ch[i])
mychkbtn.pack()
mylabel=tk.Label(yrwin,textvariable=msglabel)
mylabel.pack()
yrwin.mainloop()
完整程式碼:
def myshowmsg():
global ch,like
showmsg = "您的興趣為:"
for i in range(0,len(ch)):
if(ch[i].get()==True):#如果使用者有點選時
showmsg=showmsg+like[i]+","
msglabel.set(showmsg)
import tkinter as tk
yrwin=tk.Tk()
ch=[]
like=["聽音樂","打球","看電視"]
msglabel=tk.StringVar()
mylabel=tk.Label(yrwin,text="請選擇您的興趣:")
mylabel.pack()
for i in range(0,len(like)):
num=tk.IntVar()
print(num)
ch.append(num)
mychkbtn=tk.Checkbutton(yrwin,text=like[i],variable=ch[i],command=myshowmsg)
mychkbtn.pack()
mylabel=tk.Label(yrwin,textvariable=msglabel)
mylabel.pack()
yrwin.mainloop()
Yiru@Studio - 關於我 - 意如