1、tkinter库的导入和主窗口的创建
import tkinter as tk #以别名tk导入tkinter库root=tk.Tk() #创建主窗口的实例winroot.title("Frame组件测试窗口") #设置窗口的标题root.geometry("200x200+600+200")#设置窗口的大小和位置root.resizable(True,False) #设置窗口可水平缩放,禁止垂直缩放tk.mainloop() #进入事件处理循环,防止窗口闪退
2、Checkbutton组件(类)
Tkinter中的Checkbutton组件,就是我们在图形界面里常说的复选框。它提供了一个可以点击的小方框,用来让用户从多个选项中,自由选择一个或多个,非常灵活。
(1)Checkbutton组件常用属性参数
| |
| 设置复选框旁显示的文本 |
| 关联 Tkinter 变量,自动存储状态 |
| 指定选中状态时 variable 变量的值 |
| 指定选中状态时 variable 变量的值 |
| 复选框状态改变时调用的回调函数 |
| 控制是否可交互 |
indicatoron | 是否显示默认的方形指示器(勾选框) |
selectcolor | 指示器被选中时的前景色(即对勾的颜色) |
| 复选框的背景颜色 |
| 复选框文本的颜色 |
| 文本的字体样式 |
| 复选框的宽度(字符数,若未设置则随文本) |
| 复选框的高度(行数) |
| 文本在可用空间内的对齐方式 |
| 在复选框旁显示的图像(替代文本) |
import tkinter as tkroot = tk.Tk() #创建主窗口root.title("Checkbutton组件")root.geometry("300x300+600+300")var1=tk.IntVar()var2=tk.IntVar()var3=tk.IntVar()#创建 Checkbutton 组件,并将组件放置到窗口中cb1=tk.Checkbutton(root,text="选项1",variable=var1,onvalue=1,offvalue=0)cb2=tk.Checkbutton(root,text="选项2",variable=var2,onvalue=1,offvalue=0)cb3=tk.Checkbutton(root,text="选项3",variable=var3,onvalue=1,offvalue=0)cb1.pack(pady=10)cb2.pack(pady=10)cb3.pack(pady=10)root.mainloop() #事件循环
(2)Checkbutton组件常用方法
| |
| 编程方式勾选复选框(将其状态设为"选中") |
| 编程方式取消勾选 |
| 反转复选框的状态。如果当前是勾选的,则变为未勾选,反之亦然。 |
| 让复选框闪烁一两次,通常用于视觉提示 |
| 调用与复选框关联的command回调函数,效果如同用户点击了它 |
import tkinter as tk#创建主窗口root = tk.Tk()root.title("Checkbutton组件")root.geometry("300x300+600+300")var1=tk.IntVar()var2=tk.IntVar()var3=tk.IntVar()def checkbutton(): state1=var1.get() state2=var2.get() state3=var3.get() if state1==1 or state2==1 or state3==1: label_status.config(text="复选框状态: 已选中")#创建 Checkbutton 组件,并将组件放置到窗口中cb1=tk.Checkbutton(root,text="选项1",variable=var1,onvalue=1,offvalue=0,command=checkbutton)cb2=tk.Checkbutton(root,text="选项2",variable=var2,onvalue=1,offvalue=0,command=checkbutton)cb3=tk.Checkbutton(root,text="选项3",variable=var3,onvalue=1,offvalue=0,command=checkbutton)cb1.pack(pady=10)cb2.pack(pady=10)cb3.pack(pady=10)#创建一个标签,用于显示实时状态label_status=tk.Label(root, text="复选框状态: 未选中")label_status.pack(pady=10)#使用按钮编程方式控制复选框def reset_check(): cb1.deselect() cb2.deselect() cb3.deselect() label_status.config(text="复选框状态: 未选中")btn_reset=tk.Button(root,text="重置复选框",command=reset_check)btn_reset.pack(pady=5)root.mainloop() #事件循环