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() | 切换按钮 |
范例视窗及代码
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 协议》,转载必须注明作者和本文链接