閱讀目錄
- Checkbutton
- Radiobutton
- LabelFrame
checkbutton :
說明:多選框控件,用於在程序中提供多項選擇框,但是處理“多選一”的問題,還是交給 Radiobutton 或 Listbox 組件來實現吧。
用法:使用 Checkbutton,你必須創建一個 Tkinter 變量用於存放按鈕的狀態:
from tkinter import *
root = Tk() v1 = IntVar() #用來表示按鈕是否選中 v2 = IntVar() c1 = Checkbutton(root,text='python',variable=v1) c2 = Checkbutton(root,text='java',variable=v2) c1.pack() c2.pack() mainloop()
結果 :
用法:默認情況下,variable 選項設置為 1 表示選中狀態,反之設置為 0。你可以使用 onvalue 和 offvalue 選項修改它們的值,例如下邊代碼,只要 var 被設置為“T”即選中狀態, 設置為“F”則相反。
from tkinter import * root = Tk()
v = IntVar() v.set('T') c = Checkbutton(root,text = '測試',variable = v,onvalue='T',offvalue='F') c.pack()
l = Label(root,textvariable = v) l.pack() mainloop()
結果:
用法:如果選項多的話可以用列表,代碼如下:
from tkinter import *
root = Tk()
GIRLS = ['西施','貂蟬','王昭君','楊玉環'] v = [] for girl in GIRLS: v.append(IntVar()) #這里注意 IntVar()
b = Checkbutton(root,text=girl,variable=v[-1]) #這里注意 variable[-1]
b.pack(anchor=W) #這個是左對齊 mainloop()
把Checkbutton組件都向左對齊,可以設置pick()方法的anchor選項,
anchor選項指定顯示的位置,有 N,S,W,E,等組成。
結果:
Radiobutton:
說明:單選按鈕控件,顯示一個單選的按鈕狀態,需要設置不同的value值。
from tkinter import * root = Tk() LANGS = [ ('python',1), ('perl',2), ('c',3), ('java',4)] v = IntVar() #這里注意 v.set(1) #默認是選第一個 for lang,num in LANGS: b = Radiobutton(root,text=lang,variable=v,value=num) b.pack(anchor=W) mainloop()
結果:
如果不喜歡前面的小圓圈,還可以去掉前面的小圓圈,將indicatoron設置為False就可以去掉前面的小圓圈。
b = Radiobutton(root,text=lang,variable=v,value=num,indicatoron=False) b.pack(fill=X) #橫向填充
LabelFrame:
說明:labelframe 是一個簡單的容器控件,常用與復雜的窗口布局。
from tkinter import * root = Tk() group = LabelFrame(root,text="最好的腳本語言?",padx=5,pady=5) group.pack(padx=10,pady=10) LANGS=[ ('python',1), ('java',2), ('c',3)] v = IntVar() v.set(1) for long,num in LANGS: b = Radiobutton(group,text=long,variable=v,value=num) b.pack(anchor=W) mainloop()
結果:
參考文獻:
小甲魚的python教學視頻