利用Python做出單選題和複選題,並符合使用者圖形化UI介面
文、意如老師
看完本文你可以學到:
1. 製作表單中的單選題radiobutton
2. 製作表單中的複選題checkbutton
完成檔:
程式碼好複雜好困難,但你知道Python是目前程式語言裡最好理解的嗎!現在馬上學習,百萬年薪不是夢💰
任務一:製作表單中的單選題radiobutton
程式碼解析:
#功能:設定文字
def mymsg():
msgfood.set(您最喜歡的主食為)
#匯入tkinter取別名為tk
import tkinter as tk
#建立視窗
yrwin = tk.Tk()
#設定變數字串
msgfood=tk.StringVar()
#設定標籤
foodlabel=tk.Label(yrwin,text=請選擇你最喜歡的主食)
foodlabel.pack()#將標籤加入視窗
#建立單選按鈕
ch01=tk.Radiobutton(yrwin,text=飯,value=飯)
ch01.pack()#將單選按鈕加入視窗
ch02=tk.Radiobutton(yrwin,text=麵,value=麵)
ch02.pack()#將單選按鈕加入視窗
#建立標籤文字顯示使用者選擇的項目
msglabel=tk.Label(yrwin,textvariable=msgfood,fg=blue)
msglabel.pack()#將標籤加入視窗
#呼叫方法:設定標籤文字
mymsg()
#點選時更新視窗
yrwin.mainloop()
Radiobutton抓取值的變數名稱需使用 variable設定
例:
ch01=tk.Radiobutton(yrwin,text=飯,value=飯,variable=choosefood,command=mymsg)
ch01.pack()
抓值時,使用
choosefood.get()
預設選項:
ch02.select() #預設選擇(一定要設定看是預設選飯還是選麵)
完整程式碼:
def mymsg():
msgfood.set(您最喜歡的主食為+choosefood.get()) #抓值
import tkinter as tk
yrwin = tk.Tk()
choosefood=tk.StringVar()
msgfood=tk.StringVar()
foodlabel=tk.Label(yrwin,text=請選擇你最喜歡的主食)
foodlabel.pack()
ch01=tk.Radiobutton(yrwin,text=飯,value=1,variable=choosefood,command=mymsg)
ch01.pack()
ch02=tk.Radiobutton(yrwin,text=麵,value=2,variable=choosefood,command=mymsg)
ch02.pack()
msglabel=tk.Label(yrwin,textvariable=msgfood,fg=blue)
msglabel.pack()
ch02.select()
mymsg()
yrwin.mainloop()
📖 延伸閱讀:【Python GUI教學】製作標籤Label、按鈕Button、文字Text元件
任務二:製作表單中的複選題checkbutton
程式碼解析:
首先把介面建立出來
#匯入tkinter取別名為tk
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()
在複雜的程式碼裡面挖呀挖呀挖,種工程師的種子,開高薪水的花🌸Python成為時下最夯程式語言,現在立刻學習,成為資料數據專家
也可以使用另外一種方式,重複的地方用for迴圈的寫法
import tkinter as tk
yrwin=tk.Tk()
#將複選的按鈕寫成陣列
ch=[]
like=[聽音樂,打球,看電視]
msglabel=tk.StringVar()
mylabel=tk.Label(yrwin,text=請選擇您的興趣:)
mylabel.pack()
#在建立複選按鈕時用for 迴圈來建立
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()
📖 延伸閱讀:用Python的Tkinter套件製作簡單易用的計數器應用程式
FB粉絲團:https://www.facebook.com/lccnetzone
YouTube頻道:https://www.youtube.com/user/LccnetTaiwan
痞客邦Blog:http://lccnetvip.pixnet.net/blog