本章介绍Tkinter的Checkbutton控件,本文是Python GUI系列的第7篇文章,整个系统约20篇博客,将全面的介绍Python Tkinter常用控件,最后还将基于Tkinter搭建两个比较完整的小项目。
********************************
本系列运行平台:Mac OS 10.13.4
Python 版本:3.6.4
********************************
Checkbutton是复选框,又称为多选按钮,可以表示两种状态。用法:Checkbutton ( master, option, ... ),其中可选属性option有很多,如下表所示,这些属性中很多与前面介绍的用法一致,就不在介绍了。
函数 |
描述 |
text |
显示文本内容 |
command |
指定Checkbutton的事件处理函数 |
onvalue |
指定Checkbutton处于On状态时的值,如,onvalue=“valueX” |
offvalue |
指定Checkbutton处于Off状态时的值 |
image |
可以使用gif图像,图像的加载方法img = PhotoImage(root,file = filepath) |
bitmap |
指定位图,如bitmap= BitmapImage(file = filepath) |
variable |
控制变量,跟踪Checkbutton的状态,On(1),Off(0) |
master |
代表了父窗口 |
bg |
背景色,如bg=”red”, bg="#FF56EF" |
fg |
前景色,如fg=”red”, fg="#FF56EF" |
font |
字体及大小,如font=("Arial", 8),font=("Helvetica 16 bold italic") |
height |
设置显示高度、如果未设置此项,其大小以适应内容标签 |
relief |
指定外观装饰边界附近的标签,默认是平的,可以设置的参数:flat、groove、raised、ridge、solid、sunken |
width |
设置显示宽度,如果未设置此项,其大小以适应内容标签 |
wraplength |
将此选项设置为所需的数量限制每行的字符,数默认为0 |
state |
设置组件状态;正常(normal),激活(active),禁用(disabled) |
selectcolor |
设置选中区的颜色 |
selectimage |
设置选中区的图像,选中时会出现 |
underline |
With the default value of -1, none of the characters of the text label are underlined. Set this option to the inde |
bd |
设置Checkbutton的边框大小;bd(bordwidth)缺省为1或2个像素 |
textvariable |
设置Checkbutton的textvariable属性,文本内容变量 |
padx |
标签水平方向的边距, 默认为1像素 |
pady |
标签竖直方向的边距, 默认为1像素. |
justify |
标签文字的对齐方向, 可选值为 RIGHT, CENTER, LEFT, 默认为 Center |
以下是这个小工具的常用方法:
函数 |
描述 |
deselect() |
Clears (turns off) the checkbutton. |
flash() |
Flashes the checkbutton a few times between its active and normal colors, but leaves it the way it started. |
invoke() |
You can call this method to get the same actions that would occur if the user clicked on the checkbutton to change its state. |
select() |
Sets (turns on) the checkbutton. |
toggle() |
Clears the checkbutton if set, sets it if cleared. |
Medthod |
Description |
deselect() |
Clears (turns off) the checkbutton. |
toggle() |
Clears the checkbutton if set, sets it if cleared. |
from Tkinter import*
#初始化Tk()
myWindow = Tk()
#设置标题
myWindow.title('Python GUI Learning')
# 用来获取复选框是否被勾选,通过chVarDis.get()来获取其的状态,其状态值为int类型 勾选为1 未勾选为0
chVarDis = IntVar()
# text为该复选框后面显示的名称, variable将该复选框的状态赋值给一个变量,当state='disabled'时,该复选框为灰色,不能点的状态
check1 = Checkbutton(myWindow, text="Disabled", variable=chVarDis, state='disabled')
# 该复选框是否勾选,select为勾选, deselect为不勾选
check1.select()
# sticky=tk.W 当该列中其他行或该行中的其他列的某一个功能拉长这列的宽度或高度时,
# 设定该值可以保证本行保持左对齐,N:北/上对齐 S:南/下对齐 W:西/左对齐 E:东/右对齐
check1.grid(column=0, row=0, sticky=W)
chvarUn = IntVar()
check2 = Checkbutton(myWindow, text="UnChecked", variable=chvarUn)
check2.deselect()
check2.grid(column=1, row=0, sticky=W)
chvarEn = IntVar()
check3 = Checkbutton(myWindow, text="Enabled", variable=chvarEn)
check3.select()
check3.grid(column=2, row=0, sticky=W)
#进入消息循环
myWindow.mainloop()
运行结果:
from Tkinter import*
def callCheckbutton():
#改变v的值,即改变Checkbutton的显示值
v.set('check CheckButton')
#初始化Tk()
myWindow = Tk()
#设置标题
myWindow.title('Python GUI Learning')
v = StringVar()
v.set('check python')
#绑定v到Checkbutton的属性textvariable
Checkbutton(myWindow,textvariable = v,command = callCheckbutton).pack()
#进入消息循环
myWindow.mainloop()
运行结果:
点击选择框,响应函数将控件文本替换
欢迎学习《Python快速学习》电子书
链接:https://gitbook.cn/gitchat/column/5ad56a79af8f2f35290f6535