Tkinter (04) 复选按钮部件 Checkbutton

复选按钮部件的创建及其选项

import tkinter as tk
parent = tk.Tk()
w = tk.Checkbutton(parent, option=value, ...)
选项 说明
activebackground active 时的背景色
activeforeground active 时的前景色
anchor 部件定位点
bg or background 背景色, 点阵图时为颜色值0的颜色
bitmap 按钮的点阵图
bd or borderwidth 指示框的寛度, 内定为2图素
command 部件状态值改变调用的程序
compound 图与文本共用时, 图相对于文本的位置. LEFT/RIGHT/TOP/BOTTOM/CENTER
cursor 当鼠标移到部件时, 所显示的鼠标图示
disabledforeground disabled 时的前景色
font 文本字体
fg or foreground 前景色, 点阵图时为颜色值1的颜色
height 文本行数, 内定为1
highlightbackground 非聚焦时的聚焦颜色
highlightcolor 聚焦时的聚焦颜色
highlightthickness 聚焦厚度, 内定1, 0则无
image 按钮图片
indicatoron 有没有状态指示器, 1 或 0, 0 则没有, 就会变成两个按钮
justify 多行文本的对齐方式, LEFT/RIGHT/CENTER
offrelief 部件状态值为 0 时的显示花边样式, 内定为 RAISED
offvalue 部件状态值为 0 时的的变量值
onvalue 部件状态值为 1 时的的变量值
overrelief 鼠标在按钮上方时的显示花边样式
padx 水平间距, 内定为 1 点素
pady 垂直间距, 内定为 1 点素
relief 按钮花边样式, 内定为 FLAT
selectcolor 选定按钮的颜色, 内定为 red
selectimage 选定按钮的图片
state 状态 NORMAL 内定 / HIDDEN/DISABLED
takefocus TAB 键在部件是否会循环焦点,1 则会,内定为空字符串,则仅在具有键绑定下循环焦点
text 文本字串,使用\n 分行
textvariable 文本字串变量
underline 设置下底线的位置, 内定 -1 为无
variable 选定的按钮变量值
width 文本寛度, 内定为显示文本或图片的尺寸
wraplength 文本分行寛度

方法及说明

方法 说明
deselect() 取消按钮
flash() 在 normal 与 active 间的数次颜色切换
invoke() 点选按钮
select() 选择按钮
toggle() 切换按钮

范例视窗及代码

Tkinter (04) 复选按钮部件 Checkbutton

from tkinter import *

def action():
    select = [item.get() for item in selection]
    label.configure(text=f'{select}')

def bttn(index):
    print(index)
    func[index]()
    action()

root = Tk()

selection = [IntVar() for i in range(5)]
check_button = [Checkbutton(root, text=f'Option {i}', variable=selection[i],
    command=action) for i in range(5)]
for i in range(5):
    check_button[i].grid(column=i, row=0)

label = Label(text='', height=1, width=20)
label.grid(column=2, row=1)
action()

function = ["deselect - OFF", "flash", "invoke - Click", "select - ON",
    "toggle - ON/OFF"]
button = [Button(text=key, width=20, command=lambda k=i: bttn(k))
    for i, key in enumerate(function)]
for i in range(5):
    button[i].grid(column=i, row=2)
func = [check_button[0].deselect, check_button[0].flash, check_button[0].invoke,
    check_button[0].select, check_button[0].toggle]

root.mainloop()
本作品采用《CC 协议》,转载必须注明作者和本文链接
Jason Yang
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!