PythonGUI编程:tkinter初学者入门指南——复选框

云课堂学Python 2024-10-22 21:57:06

在本文中,将介绍 tkinter Checkbox 复选框小部件以及如何有效地使用它。

复选框是一个允许选中和取消选中的小部件。复选框可以保存一个值,通常,当希望让用户在两个值之间进行选择时,可以使用复选框。

要创建复选框,请使用如下构造函数。

checkbox = tk.Checkbutton(master, text='<checkbox label>', command=check_changed, variable=checkbox_var, onvalue='<value_when_checked>', offvalue='<value_when_unchecked>')text 参数:指定复选框的显示标签。command 参数:选中或取消选中复选框时调用的命令。variable 参数:保存复选框当前值的变量。选中复选框,则变量的值为 1。否则为 0。onvalue、offvalue 参数:指定 variable 变量 0 和 1 以外的其他值。import tkinter as tkfrom tkinter.messagebox import showinforoot = tk.Tk()root.geometry('600x400+200+200')root.title('Checkbutton 复选框演示')# 创建变量,保存复选框的值agr = tk.StringVar()# 定义函数,复选框状态发生变化就调用该函数def agr_changed(): tk.messagebox.showinfo(title='是否同意', message=agr.get())# 创建复选框checkbox = tk.Checkbutton(root, text='是否同意', command=agr_changed, variable=agr, onvalue='同意', offvalue='不同意')checkbox.pack()root.mainloop()

以下示例使用 indicatoron=0 选项取消复选框前面的小方块,取消复选框的 Text 并显示图像。

import tkinter as tkfrom tkinter.messagebox import showinforoot = tk.Tk()root.geometry('600x400+200+200')root.title('Checkbutton 复选框演示')frame = tk.LabelFrame(root, text='请选择', padx=30, pady=10)frame.pack(padx=100, pady=100)checked_image = tk.PhotoImage(file="logo.png")unchecked_image = tk.PhotoImage(file="logo2.png")checkbutton_1 = tk.Checkbutton(frame, indicatoron=0, overrelief="sunken", image=unchecked_image, selectimage=checked_image)checkbutton_1.pack(side=tk.LEFT)checkbutton_2 = tk.Checkbutton(frame, indicatoron=0, overrelief="sunken", image=unchecked_image, selectimage=checked_image)checkbutton_2.pack(side=tk.LEFT)checkbutton_3 = tk.Checkbutton(frame, indicatoron=0, overrelief="sunken", image=unchecked_image, selectimage=checked_image)checkbutton_3.pack(side=tk.LEFT)checkbutton_4 = tk.Checkbutton(frame, indicatoron=0, overrelief="sunken", image=unchecked_image, selectimage=checked_image)checkbutton_4.pack(side=tk.LEFT)root.mainloop()

Checkbox 复选框选项

方法

说明

deselect()

取消复选框选择。

select()

选择复选框。

toggle()

选择和取消选择之间切换。

以下示例设置两个按钮,利用 deselect() 和 select() 方法,全选和取消全选所有复选框。

import tkinter as tkroot = tk.Tk()root.geometry('600x400+200+200')root.title('Checkbutton 复选框演示')def clear_selection(): cb1.deselect() cb2.deselect() cb3.deselect() cb4.deselect() cb5.deselect() cb6.deselect() def selection(): cb1.select() cb2.select() cb3.select() cb4.select() cb5.select() cb6.select() var1 = tk.BooleanVar()var2 = tk.BooleanVar()var3 = tk.BooleanVar()var4 = tk.BooleanVar()var5 = tk.BooleanVar()var6 = tk.BooleanVar()frame1 = tk.LabelFrame(root, text='Group 1', padx=30, pady=10)frame1.pack(side=tk.LEFT, padx=50)frame2 = tk.LabelFrame(root, text='Group 2', padx=30, pady=10)frame2.pack(side=tk.RIGHT, padx=50)cb1 = tk.Checkbutton(frame1, text='Number 1', variable=var1)cb1.pack()cb2 = tk.Checkbutton(frame1, text='Number 2', variable=var2)cb2.pack()cb3 = tk.Checkbutton(frame1, text='Number 3', variable=var3)cb3.pack()cb4 = tk.Checkbutton(frame2, text='Number 4', variable=var4)cb4.pack()cb5 = tk.Checkbutton(frame2, text='Number 5', variable=var5)cb5.pack()cb6 = tk.Checkbutton(frame2, text='Number 6', variable=var6)cb6.pack()button1 = tk.Button(root, text='Unselect all', command=clear_selection)button1.pack()button2 = tk.Button(root, text='Select All', command=selection)button2.pack()root.mainloop()

Checkbox 复选框选项

选项

说明

master

指定复选框的父级窗口或框架。

variable

保存复选框当前值的变量,用于存储复选框的选中状态。

onvalue

指定当复选框被选中时,variable变量的值。

offvalue

指定当复选框未被选中时,variable变量的值。

command

指定一个函数,当复选框的状态改变时,该函数将被调用。

text

指定复选框旁边显示的文本。

image

指定一个图像对象,显示在复选框旁边。

compound

指定图像和文本的对齐方式,如TOP, BOTTOM, LEFT, RIGHT。

invcmd

指定一个函数,当复选框的状态改变时,如果command指定的函数返回False,则调用此函数。

selectcolor

指定复选框被选中时的背景颜色。

height

指定复选框的高度(通常用于显示图像)。

width

指定复选框的宽度(通常用于显示文本)。

anchor

指定文本的对齐方式,如W(西), E(东), N(北), S(南), CENTER。

justify

指定文本的对齐方式,如LEFT, RIGHT, CENTER。

padx

指定复选框与其文本之间的水平填充。

pady

指定复选框与其文本之间的垂直填充。

indicatoron

是否绘制前边作为选择的小方块,设置为0,可以将整个小部件变成复选框。

0 阅读:2