# Checkbutton复选框控件 # Checkbutton # 控件是一种供用户选择相应条目的按钮控件,但与 # Radiobutton # 不同的是,Checkbutton # 控件不仅允许用户选择一项,还允许用户同时选择多项,各个选项之间属于并列的关系。 # 复选框控件同样有许多适用场景,比如选择兴趣爱好、选择选修课,以及购买多个物品等,在这种情况下都可以使用复选框控件,其语法格式如下 import tkinter as tk # 创建主窗口 root = tk.Tk() root.title("Tkinter Checkbutton Example") # 创建 Tkinter 变量 check_var1 = tk.IntVar() check_var2 = tk.IntVar() check_var3 = tk.IntVar() # 定义回调函数 def on_change(): print(f"Checkbox 1 state: {check_var1.get()}, Checkbox 2 state: {check_var2.get()}, Checkbox 3 state: {check_var3.get()}") # 创建 Checkbutton 控件 # text: 显示在复选框旁边的文本内容,使用 '\n' 实现文本换行 cb1 = tk.Checkbutton(root, text="Option 1\nFirst line\nSecond line", # 文本内容 variable=check_var1, # 与复选框关联的 Tkinter 变量 onvalue=1, # 当复选框被选中时,与之关联的变量的值 offvalue=0, # 当复选框未被选中时,与之关联的变量的值 indicatoron=True, # 是否显示复选框的图形指示器,默认为 True selectcolor="red", # 选中状态下的图形指示器的颜色(小方框) # selectimage 参数在这个例子中使用 # selectimage=tk.PhotoImage(file="path/to/image.png"), # 当复选框被选中时显示的图像 textvariable=tk.StringVar(value="Option 1"), # 与复选框关联的 Tkinter 变量 wraplength=100, # 指定文本应该换行的最大宽度 command=on_change) # 当复选框状态改变时触发的回调函数 cb1.pack() # 添加到主窗口 # 创建第二个 Checkbutton 控件 cb2 = tk.Checkbutton(root, text="Option 2\nThird line\nFourth line", # 文本内容 variable=check_var2, # 与复选框关联的 Tkinter 变量 onvalue=1, # 当复选框被选中时,与之关联的变量的值 offvalue=0, # 当复选框未被选中时,与之关联的变量的值 indicatoron=True, # 是否显示复选框的图形指示器,默认为 True selectcolor="green", # 选中状态下的图形指示器的颜色 # selectimage 参数在这个例子中使用 # selectimage=tk.PhotoImage(file="path/to/image.png"), # 当复选框被选中时显示的图像 # textvariable 参数在这个例子中使用 textvariable=tk.StringVar(value="Option 2"), # 与复选框关联的 Tkinter 变量 wraplength=100, # 指定文本应该换行的最大宽度 command=on_change) # 当复选框状态改变时触发的回调函数 cb2.pack() # 添加到主窗口 # 创建第三个 Checkbutton 控件 cb3 = tk.Checkbutton(root, text="Option 3\nFifth line\nSixth line", # 文本内容 variable=check_var3, # 与复选框关联的 Tkinter 变量 onvalue=1, # 当复选框被选中时,与之关联的变量的值 offvalue=0, # 当复选框未被选中时,与之关联的变量的值 indicatoron=True, # 是否显示复选框的图形指示器,默认为 True selectcolor="blue", # 选中状态下的图形指示器的颜色 # selectimage 参数在这个例子中使用 # selectimage=tk.PhotoImage(file="path/to/image.png"), # 当复选框被选中时显示的图像 # textvariable 参数在这个例子中使用 textvariable=tk.StringVar(value="Option 3"), # 与复选框关联的 Tkinter 变量 wraplength=100, # 指定文本应该换行的最大宽度 command=on_change) # 当复选框状态改变时触发的回调函数 cb3.pack() # 添加到主窗口 # 设置初始状态 cb1.deselect() # 设置初始状态为未选中 cb2.deselect() # 设置初始状态为未选中 cb3.deselect() # 设置初始状态为未选中 # 运行主循环 root.mainloop() # text: 显示在复选框旁边的文本内容。使用 \n 可以实现文本的换行。 # variable: 与复选框关联的 Tkinter 变量(例如 IntVar 或 BooleanVar)。当用户点击复选框时,该变量的值会在 onvalue 和 offvalue 之间切换。 # onvalue: 当复选框被选中时,与之关联的变量的值。默认情况下,此值为 1。 # offvalue: 当复选框未被选中时,与之关联的变量的值。默认情况下,此值为 0。 # indicatoron: 布尔值,决定是否显示复选框的图形指示器(通常是小方块)。默认为 True。 # selectcolor: 选中状态下的图形指示器的颜色。默认颜色由系统指定。 # selectimage: 当复选框处于选中状态时显示的图像。如果未指定 image 参数,该选项将被忽略。 # textvariable: 与复选框关联的 Tkinter 变量(通常为 StringVar),其内容将显示在复选框旁边。当变量值更改时,显示的文本也会自动更新。 # wraplength: 指定文本应该换行的最大宽度,单位为屏幕单元。默认为 0,表示不换行。 # 方法 # deselect(): 将复选框设置为未选中状态,即将 variable 设置为 offvalue。 # flash(): 使复选框闪烁,即临时交换前景色和背景色。 # invoke(): 触发复选框关联的 command 函数。如果复选框处于禁用状态或者没有指定 command,则无效。 # select(): 将复选框设置为选中状态,即将 variable 设置为 onvalue。 # toggle(): 切换复选框的状态。如果当前为选中状态,则变为未选中状态;反之亦然
Checkbutton复选框控件
于 2023-10-10 00:05:42 首次发布