一.checkbutton的使用
from tkinter import *
root = Tk()
GIRLS = ['A','B','C','D']
v = []
for girls in GIRLS:
v.append(IntVar())
b = Checkbutton(root,text=girls,variable=v[-1])
b.pack(anchor=W)
t = Label(root,textvariable=v[0]) #用来测试是否被选定,选定为1
t.pack(side=LEFT)
mainloop()
这里的变量variable
不同是因为他们每个选项互不关联
代码中的IntVar()
是函数,是整型变量,这个用来表示这个checkbutton是否被变化
b.pack(anchor=W)
是让他们换行左对齐
w
是按照东南西北分的
如果用b.pack(side=LEFT)
是一个接一个向左靠
二.radiobutton的使用
实现单选
from tkinter import *
root = Tk()
LANGS = [
('python',1),
('c++',2),
('c',3)]
v = IntVar()
for lang,num in LANGS:
b = Radiobutton(root,text=lang,variable=v,value=num)
b.pack(anchor=W)
mainloop()
依旧设置variable
变量来观察这个按钮是否被选择,且同一组选项的按钮都是一个v
值
当这个按钮被选中了,那variable
就变成了1
后面的value
值不能相同
当选择一个按钮时,会判定后面的value
,如果和被选定的num
相同,那么num
相同的都会被选中
如果v
值不同,即使后面的num
是相同的,也不会关联
三.labelframe
也就是把那些选项框起来
from tkinter import *
root = Tk()
group = LabelFrame(root,text='最好的语言是?',padx=50,pady=50) #这里的控制这个框架的大小
group.pack(padx=100,pady=10) #控制这个框架在窗口的位置
LANGS = [
('python',1),
('c++',2),
('c',3)]
v = IntVar()
for lang,num in LANGS:
b = Radiobutton(group,text=lang,variable=v,value=num)
b.pack(anchor=W)
mainloop()
多了
group = LabelFrame(root,text='最好的语言是?',padx=50,pady=50) #这里的控制这个框架的大小 group.pack(padx=100,pady=10) #控制这个框架在窗口的位置
两句话
最后再把选项 b
放到这个group
中