复选框
基本概念
复选框与单选框所不同的是复选框可以一次选择多个。
用法:Checkbutton(父对象,options,…)
简单应用
课程选择
from tkinter import *
from tkinter import messagebox
class Application(Frame):
def __init__(self,master=None):
super().__init__(master)
self.master=master
self.pack()
self.createWidget()
def createWidget(self):
self.label=Label(self,text="选修课程",width=40).grid(row=0)
v1=IntVar()
self.taekwondo=Checkbutton(self,text="跆拳道",variable=v1).grid(row=1,column=0,sticky=W)
v2 = IntVar()
self.ceremony = Checkbutton(self, text="礼仪", variable=v2).grid(row=2,column=0, sticky=W)
v3 = IntVar()
self.photoshop = Checkbutton(self, text="Photoshop", variable=v3).grid(row=3,column=0, sticky=W)
v4 = IntVar()
self.Philosophy = Checkbutton(self, text="哲学", variable=v4).grid(row=4,column=0, sticky=W)
v5 = IntVar()
self.illustration = Checkbutton(self, text="插图", variable=v5).grid(row=5,column=0, sticky=W)
v6 = IntVar()
self.film_appreciation = Checkbutton(self, text="电影", variable=v6,width=10).grid(row=1,column=0, sticky=E)
v7 = IntVar()
self.paper_cut = Checkbutton(self, text="剪纸", variable=v7,width=10).grid(row=2,column=0, sticky=E)
v8 = IntVar()
self.writing = Checkbutton(self, text="写作", variable=v8,width=10).grid(row=3,column=0, sticky=E)
v9 = IntVar()
self.baseball = Checkbutton(self, text="棒球", variable=v9,width=10).grid(row=4,column=0, sticky=E)
v10 = IntVar()
self.literature = Checkbutton(self, text="文学", variable=v10,width=10).grid(row=5,column=0, sticky=E)
if __name__ == '__main__':
root=Tk()
root.geometry('350x250')
root.title('萤火虫选修课程选择')
app=Application(master=root)
root.mainloop()
这样写显然很复杂,不太聪明的样子。选择多的话还是写入字典比较方便。
from tkinter import *
from tkinter import messagebox
class Application(Frame):
def __init__(self,master=None):
super().__init__(master)
self.master=master
self.pack()
self.createWidget()
def createWidget(self):
self.label=Label(self,text="选修课程",width=40).grid(row=0)
self.curriculum={
0:'跆拳道',1:'礼仪',2:'Photoshop',3:'哲学',4:'插图',5:'电影',6:'剪纸',7:'写作',8:'棒球',9:'文学'
}
self.var={
}
for i in range(len(self.curriculum)):
self.var[i]=BooleanVar()
Checkbutton(self,text=self.curriculum[i],variable=self.var[i]).grid(row=i+1,sticky=W)
self.button=Button(self,text="确认选择",command=self.confirm).grid()
def confirm(self):
select=''
for i in self.var:
if self.var[i].get()==True:
select=select+self.curriculum[i]+'\n'
print(select)
if __name__ == '__main__':
root=Tk()
root.geometry('350x380')
root.title('萤火虫选修课程选择')
app=Application(master=root)
root.mainloop()