Tkinter:Checkbutton组件

Checkbutton

Checkbutton(多选按钮)组件用于实现确定是否选择的按钮。Checkbutton 组件可以包含文本或图像,你可以将一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法将被自动执行。

使用Checkbutton ,必须创建一个 tkinter 变量用来存放按钮的状态,默认情况下,variable 选项设置1 为选中状态,0 是未选中。也可以使用 onvalue 和 offvalue 选项修改他们的值。v=tk.StingVar() c=tk.Checkbutton(root,text='额,,点我啊',variable=v,onvalue='T',offvalue='F')

import tkinter as tk
root=tk.Tk()

v= tk.IntVar()            #   需要一个tkinter 的整形变量,用于表示该按钮是否被选中
c=tk.Checkbutton(root,text='额,,点我啊',variable=v)
c.pack()

# 如果选项被选中,变量 v 就被赋值成1,否则为 0
# 使用一个 label 标签动态的展示
l = tk.Label(root, textvariable = v)
l.pack()
root.mainloop()

在这里插入图片描述在这里插入图片描述
Checkbutton 组件被用于作为二选一的按钮(通常为选择“开”或“关”的状态),当你希望表达“多选多”选项的时候,可以将一系列 Checkbutton 组合起来使用。

但是处理“多选一”的问题,还是交给 Radiobutton 和 Listbox 组件来实现吧。
在这里插入图片描述

class A:
    def __init__(self,root):
        self.var = tk.IntVar()
        c = tk.Checkbutton(root, text="DUANG~", variable=self.var, command=self.cb)
        c.pack()
 
    def cb(self):
        print("variable is", self.var.get())
root = tk.Tk()
A(root)
root.mainloop()

variable is 1               # 选中状态
variable is 0

参数

跟label 的参数比较,多出了这些:

方法 描述
indicatoron 1. 指定前边作为选择的小方块是否绘制 2. 默认是绘制的 3. 该选项会影响到按钮的样式,如果设置为 False,则点击后该按钮变成 “sunken”(凹陷),再次点击变为 “raised”(凸起)
offvalue 1. 默认情况下,variable 选项设置为 1 表示选中状态,反之设置为 0 4. 设置 offvalue 的值可以自定义未选中状态的值(详见上方用法举例)
offvalue 1. 默认情况下,variable 选项设置为 1 表示选中状态,反之设置为 0 5. 设置 offvalue 的值可以自定义未选中状态的值(详见上方用法举例)
selectimage 1. 设置当 Checkbutton 为选中状态的时候显示的图片 6. 如果没有指定 image 选项,该选项被忽略
variable 1. 将 Checkbutton 跟一个 Tkinter 变量关联 2. 当按钮按下时,该变量在 onvalue 和 offvalue 之间切换 3. 这个切换的过程是完全自动的

方法

deselect()

– 取消 Checkbutton 组件的选中状态,也就是设置 variable 为 offvalue。

flash()

– 刷新 Checkbutton 组件,该方法将重绘 Checkbutton 组件若干次(在"active" 和 “normal” 状态间切换)。

invoke()

– 调用 Checkbutton 中 command 选项指定的函数或方法,并返回函数的返回值。
– 如果 Checkbutton 的state(状态)"disabled"是 (不可用)或没有指定 command 选项,则该方法无效。

select()

– 将 Checkbutton 组件设置为选中状态,也就是设置 variable 为 onvalue。

toggle()

– 切换 Checkbutton 组件的状态(选中 -> 未选中 / 未选中 -> 选中)。

猜你喜欢

转载自blog.csdn.net/weixin_46192930/article/details/106326476