Tkinter Checkbutton复选框

Tkinter Checkbutton复选框

Checkboxes可以翻译为复选框,它在Widget控件中的类别名称是Checkbutton。复选框在屏幕上显示为一个方框,它与选项按钮最大的差别在于它是复选。在设计复选框时,最常见的方式是让复选框以文字形式存在。与标签一样,也可以设计含有图像的复选框。

程序设计时可以设计让每个复选框与函数(或称方法)绑在一起,当此选项被选择时,可以自动执行相关的函数或方法。另外,程序设计时可能会有多组复选框,此时可以设计一组复选框有一个相关的变量,由此变量绑定这组复选框。

可以使用Checkbutton( )方法建立复选框,它的使用方法如下。

Checkbutton(master, options, ...)

Checkbutton( )方法的第一个参数是父对象,表示这个复选框将建立在哪一个父对象内。下列是Checkbutton( )方法内其他常用的options参数。

(1)activebackground:鼠标光标在复选框上时的背景颜色。

(2)activeforeground:鼠标光标在复选框上时的前景颜色。

(3)bg:标签背景或indicator的背景颜色。

(4)bitmap:位图图像对象。

(5)borderwidth or bd:边界宽度默认是两个像素。

(6)command:当用户更改选项时,会自动执行此函数。

(7)cursor:当鼠标光标在复选框上时的光标形状。

(8)disabledforeground:当无法操作时的颜色。

(9)font:字形。

(10)height:复选框中的文字有几行,默认是1行。

(11)highlightbackground:当复选框取得焦点时的背景颜色。

(12)highlightcolor:当复选框取得焦点时的颜色。

(13)image:图像对象,如果要建立含图像的选项按钮时,可以使用此参数。

(14)justify:当含多行文字时,最后一行文字的对齐方式。

(15)offvalue:这是控制变量,默认若复选框未选取值是0,可以由此更改设置此值。

(16)onvalue:这是控制变量,默认若复选框未选取值是1,可以由此更改设置此值。

(17)padx:默认是1,可设置复选框与文字的间隔。

(18)pady:默认是1,可设置复选框的上下间距。

(19)relief:默认是relief=FLAT,可由此控制复选框外框。

(20)selectcolor:当复选框被选取时的颜色。

(21)selectimage:如果设置图像复选框,可由此设置当复选框被选取时的不同图像。

(22)state:默认是state=NORMAL,若是设置DISABLED则以灰阶显示复选框,表示暂时无法使用。如果鼠标光标在复选框上方表示ACTIVE。

(23)text:复选框旁的文字。

(24)underline:可以设置第几个文字有下画线,从0开始算起,默认是-1,表示无下画线。

(25)variable:设置或取得目前选取的复选框,它的值类型通常是IntVar或StringVar。

(26)width:复选框的文字有几个字符宽,省略时会自行调整为实际宽度。

(27)wraplength:限制每行的文字数,默认是0,表示只有“\n”才会换行。

Tkinter Checkbutton复选框 示例1

建立复选框的应用。

from tkinter import *

root = Tk()
root.title("apidemos.com")

lab = Label(root,text="请选择喜欢的运动",fg="blue",bg="lightyellow",width=30)
lab.grid(row=0)

var1 = IntVar()
cbtnNFL = Checkbutton(root,text="美式足球",variable=var1)
cbtnNFL.grid(row=1,sticky=W)                          # 左对齐

var2 = IntVar()
cbtnMLB = Checkbutton(root,text="棒球",variable=var2)
cbtnMLB.grid(row=2,sticky=W)                          # 左对齐

var3 = IntVar()
cbtnNBA = Checkbutton(root,text="篮球",variable=var3)
cbtnNBA.grid(row=3,sticky=W)                          # 左对齐

root.mainloop()

输出:

Tkinter Checkbutton复选框

如果复选框中项目不多,可以参考上述实例使用Checkbutton( )方法一步一步建立复选框的项目。如果项目很多,可以将项目组织成字典,然后使用循环建立复选框,可参考下列实例。

Tkinter Checkbutton复选框 示例2

以sports字典方式存储运动复选框项目,然后建立此复选框,当有选择项目时,若是单击“确定”按钮,可以在Python Shell窗口中列出所选的项目。

from tkinter import *

def printInfo():
    selection = ""
    # print("before iteration:")
    # print(selection)
    for i in checkboxes.keys():           # 检查此字典的关键字,同: for i in checkboxes:
        if checkboxes[i].get() == True:   # 若被选中则执行
            selection = selection + sports[i] + "\t"
            # print(selection)
    # print("after iteration:")
    print(selection)

root = Tk()
root.title("apidemos.com")  # 窗口标题

label = Label(root,text="请选择喜欢的运动",fg="blue",bg="lightyellow",width=30)
label.grid(row=0)

sports = {0:"美式足球",1:"棒球",2:"篮球",3:"网球",4:"足球",5:"游泳"}  # sports字典是存储运动项目的复选框。
checkboxes = {}   # checkboxes字典则是存储选项是否被选取。
for i in range(len(sports)):       # 循环将sports字典内容转成复选框。
    checkboxes[i] = BooleanVar()   # 将checkboxes内容设为BooleanVar对象,经过这样设置后才可以用get()方法取得它的内容。
    Checkbutton(root,text=sports[i],
                variable=checkboxes[i]).grid(row=i+1,sticky=W)

btn = Button(root,text="确定",width=10,command=printInfo) #创建“确定”按钮,当单击此按钮时会执行printInfo( )函数,这个函数主要是将被选取的项目打印出来。
btn.grid(row=i+2)
# btn.grid()

root.mainloop()

输出:

Tkinter Checkbutton复选框

上述右图中若是单击“确定”按钮,可以在Python Shell窗口中看到下列结果。

Tkinter Checkbutton复选框

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程