1. Radio按钮
有的时候我们需要在多个选项中选择一项,那么我们就可以使用到Tkinter模块中的Radiobutton方法来创建相关按钮,创建的选项效果图如下:
它的语法格式同前面的方法类似,它的相关可选项也相似,下面我们就直接通过例子来学习这个控件,代码如下:
import tkinter win = tkinter.Tk() win.title("Python教程")#给窗口取一个标题 win.minsize(366, 50) # 定义一个最小尺寸 def get_data(): print('选择的为第%d项'%x.get()) x = tkinter.IntVar()# 在这里我们把一组单选框绑定为同一个变量 radio_one = tkinter.Radiobutton(win, text="选项1", value=1, variable=x, command=get_data) radio_one.pack() radio_two = tkinter.Radiobutton(win, text="选项2", value=2, variable=x, command=get_data) radio_two.pack() win.mainloop()
运行结果为:
我们每点击一个选项,就选择了该按钮,然后在控制台输出了选择的第几项,需要注意的是我们在定义的时候给两个Radiobutton使用了同一变量,通过这个我们才可以使得两个按钮公用的为一个信息,当然我们还可以通过具体函数去实现更多的功能,在这里先对Radiobutton做一个简单的了解。
2. Check控件
我们在做选择题的时候会遇到多选题,上面我们学习的Radio按钮即给我们提供了单选的功能,那么如果我们要使用多选操作的时候就要通过Check按钮来实现。
Check按钮的显示效果如图所示:
Check按钮使用的时候tkinter模块中的Checkbutton方法来创建相关控件,下面我们也直接通过例子来学习这个按钮,代码如下:
import tkinter win = tkinter.Tk() win.title("Python教程") win.minsize(200,200) def get_data(): my_str = '' if x.get() == True: my_str += "已选择选项1\n" if y.get() == True: my_str += "已选择选项2\n" if z.get() == True: my_str += "已选择选项3\n" text.delete(0.0, tkinter.END) # 清除text文板框中的内容 text.insert(tkinter.INSERT, my_str) #把上面的信息插入到文本框中 x = tkinter.BooleanVar() ckbutton_one = tkinter.Checkbutton(win, text="选项1", variable=x, command=get_data) ckbutton_one.pack() y = tkinter.BooleanVar() ckbutton_two = tkinter.Checkbutton(win, text="选项2", variable=y, command=get_data) ckbutton_two.pack() z = tkinter.BooleanVar() ckbutton_three = tkinter.Checkbutton(win, text="选项3", variable=z, command=get_data) ckbutton_three.pack() text = tkinter.Text(win, width=50, height=5) text.pack() win.mainloop()
运行结果为:
在这个例子中,我们对三个按钮分别绑定了三个不同的变量,我们可以在点击不同按钮的时候给出相应的信息,在这里我们给按钮定义了一个布尔值的选取,当我们选择了该选项的时候,该选项的布尔值为True,然后我们就可以输出选项为True时的相关信息,如果未选中时我们也可以给出相应的信息。
3. 总结
这两个按钮在我们完善界面相关功能的时候能够提供一定的帮助,大家可以尝试着练习使用这个模块中的功能,甚至有兴趣的可以通过本章的内容出一份单选加多选的兴趣答卷或者是相关方面的内容,学习的过程也是兴趣挖掘的过程,大家一定要在学习之后去把我们学过的知识串联到一起。
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程