tk的复选框的效果
相信有很多的小伙伴都有过小编的这个经历,不管你是做爬虫也好还是做程序也好,复选框可定是少不了的,就像小编一样,需要爬取平台的玻璃企业数据,但是呢有几家企业已经停产了,没必要爬取了,还有就是上级动不动的就要一家或者多家的数据,那怎么办呢,当然是复选框了,勾上那个选哪个。 小编的这个程序只是第一版哈,最后的成果版,这里就不演示了
上效果图
大家的关注点一定要在复选框上面哈,小编之前想的是用cookie这个方法,但是后期改良了,这个只是一个初版,所以大佬们千万不要说这个tk工具比较垃圾,原因有以下几点
上代码
小编知道大家的时间比较宝贵,所以不罗嗦了哈 下面的只列出来一些关键性的代码,其他的代码需要大家自己补充,也就需要大家补充一个root大框,这个很简单的吧
from tkinter import *
###这个是关键的地方代码,root窗口还的需要大家自己创建
创建一个group的窗口,在root窗口里面,线框上面写上‘请勾选不需要监视的企业’
group = LabelFrame(root, text="请勾选不需要监控的玻璃企业",padx=5, pady=5)
###放置在root窗口的第0行第1列的位置,注意tk的行和列都是从0开始的
group.grid(row=0, column=1,padx=10, pady=10)
###创建相对应的var值,其中value=0,可以理解为初始值为0,一旦被勾选上,value就会变成1
####需要多少个复选框就需要创建多少个var值,并且要与下面的对应的上去
###然后通过get取值后,判断是否为1,如果为1就代表被勾选上了,勾选上了就可以后面写个def执行需要执行的动作了
dongxingVar = StringVar(value="0")
dejinVar = StringVar(value="0")
zhengdaVar = StringVar(value="0")
xinliVar = StringVar(value="0")
changchengVar = StringVar(value="0")
changhongVar = StringVar(value='0')
xinleiVar = StringVar(value="0")
jindongVar = StringVar(value="0")
haishengVar = StringVar(value="0")
yingxinVar = StringVar(value="0")
feiyaoVar = StringVar(value="0")
###这个def函数,也就是一个动作函数
def print_selection():
###下面需要要实现的功能
###dejinVar.get(),可以获取dejinVar这个时候的值,上面不是默认是0吗,如果被勾选了,get他一下就是1了,然后可以执行一些动作(自己定义),如果没有勾选上,他的值还是0
print(dejinVar.get())
###这个是创建复选框,东兴玻璃,可以理解为通过variable复制给上面创建的相对应的字符串var值,
后面的command这个是代表着一旦勾选了这个复选框,需要执行的动作,这里的就是上面的def函数。
切记不带函数后面的括号
dongxing = Checkbutton(group, text="东兴玻璃", variable=dongxingVar,command=print_selection)
dongxing.grid(row=0, column=1, sticky=W, padx=2 ,pady=5)
dejin = Checkbutton(group, text="德金玻璃", variable=dejinVar,command=print_selection)
dejin.grid(row=0, column=2, sticky=W, padx=2 ,pady=5)
zhengda = Checkbutton(group, text="正大玻璃", variable=zhengdaVar,command=print_selection)
zhengda.grid(row=0, column=3, sticky=W, padx=2 ,pady=5)
xinli = Checkbutton(group, text="鑫利玻璃", variable=xinliVar,command=print_selection)
xinli.grid(row=1, column=1, sticky=W, padx=2 ,pady=5)
changcheng = Checkbutton(group, text="长城玻璃", variable=changchengVar,command=print_selection)
changcheng.grid(row=1, column=2, sticky=W, padx=2 ,pady=5)
changhong = Checkbutton(group, text="长红玻璃", variable=changhongVar,command=print_selection)
changhong.grid(row=1, column=3, sticky=W, padx=2 ,pady=5)
xinlei = Checkbutton(group, text="鑫磊玻璃", variable=xinleiVar,command=print_selection)
xinlei.grid(row=2, column=1, sticky=W, padx=2 ,pady=5)
jindong = Checkbutton(group, text="金东玻璃", variable=jindongVar,command=print_selection)
jindong.grid(row=2, column=2, sticky=W, padx=2 ,pady=5)
haisheng = Checkbutton(group, text="海生玻璃", variable=haishengVar,command=print_selection)
haisheng.grid(row=2, column=3, sticky=W, padx=2 ,pady=5)
yingxin = Checkbutton(group, text="迎新玻璃", variable=yingxinVar,command=print_selection)
yingxin.grid(row=0, column=4, sticky=W, padx=2 ,pady=5)
feiyao = Checkbutton(group, text="飞耀玻璃", variable=feiyaoVar,command=print_selection)
feiyao.grid(row=1, column=4, sticky=W, padx=2 ,pady=5)
####可以结合if判断是不是为1,来进行相应的操作,当然这个只是一个笨方法,大家有好的方法,不妨一起分享一下
结束语
原理非常的简单,自己也是看了好多网上的资料,自己用的python3.8版本的,好多都是不匹配的,希望可以帮上大家,希望通过大家一起努力,互联网更加的强大
|