閱讀目錄 Checkbutton Radiobutton LabelFrame checkbutton : 說明:多選框控制項,用於在程式中提供多項選擇框,但是處理“多選一”的問題,還是交給 Radiobutton 或 Listbox 組件來實現吧。 用法:使用 Checkbutton,你必須創建一個 ...
閱讀目錄
- 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教學視頻