Tkinter 教程 - 多选按钮
-
Tkinter
Checkbutton
基本示例 -
Tkinter
Checkbutton
选择/取消选择 -
Tkinter
Checkbutton
多选按钮状态切换 -
Tkinter
Checkbutton
回调函数绑定 -
更改 Tkinter
Checkbutton
多选按钮默认值
Checkbutton
多选按钮控件是一个包含多个可选项的控件。多选按钮可以包含文本或图像。它还可以绑定单击多选按钮时要调用的回调函数。
要在现有父窗口中创建一个 Checkbutton
窗口控件,请使用
tk.Checkbutton(parent, option, ...)
Tkinter Checkbutton
基本示例
import tkinter as tk
app = tk.Tk()
app.geometry("150x100")
chkValue = tk.BooleanVar()
chkValue.set(True)
chkExample = tk.Checkbutton(app, text="Check Box", var=chkValue)
chkExample.grid(column=0, row=0)
app.mainloop()
chkValue = tk.BooleanVar()
每个多选按钮都应与变量相关联。选择/取消选择时,变量的数据类型由多选按钮来确定。
chkValue.set(True)
它设置了多选按钮的原始值。因为它只是赋予为 Boolean
数据类型,所以这里只有两个选项,True
或 False
。
chkExample = tk.Checkbutton(app, text="Check Box", var=chkValue)
现在,这里新建了一个 Checkbutton
实例,并且使用我们在上面创建的变量 chkValue
。
chkExample.grid(column=0, row=0)
除了在 Tkinter 标签部分中引入的 pack
,grid
是另一种类型的 Tkinter 布局管理器。
Tkinter 有三个布局管理器,
pack
- 打包grid
- 网格place
- 放置
我们将在本教程的后半部分介绍这些布局/几何管理器。
Tkinter Checkbutton
选择/取消选择
用户可以单击 GUI 中的多选按钮来选择或取消选择按钮。你也可以使用 select()
和 deselect()
方法选择或取消选中 Checkbutton
。
chkExample.select()
print "The checkbutton value when selected is {}".format(chkValue.get())
chkExample.select()
print "The checkbutton value when deselected is {}".format(chkValue.get())
The checkbutton value when selected is True
The checkbutton value when deselected is False
这里,Checkbutton
的值是通过 get()
方法获得的。
Tkinter Checkbutton
多选按钮状态切换
多选按钮的状态可以通过 select()
和 deselect()
修改,也可以使用 toggle()
方法切换。
import tkinter as tk
app = tk.Tk()
app.geometry("150x100")
chkValue = tk.BooleanVar()
chkValue.set(True)
chkExample = tk.Checkbutton(app, text="Check Box", var=chkValue)
chkExample.grid(column=0, row=0)
print "The checkbutton original value is {}".format(chkValue.get())
chkExample.toggle()
print "The checkbutton value after toggled is {}".format(chkValue.get())
chkExample.toggle()
print "The checkbutton value after toggled twice is {}".format(chkValue.get())
app.mainloop()
The checkbutton original value is True
The checkbutton value after toggled is False
The checkbutton value after toggled twice is True
Tkinter Checkbutton
回调函数绑定
Checkbutton 控件用于选择状态,它还可以在选择/取消选择或更直接,切换时将回调函数绑定到事件。每当切换多选按钮状态时,都会触发回调函数。
import tkinter as tk
from _cffi_backend import callback
def callBackFunc():
print "Oh. I'm clicked"
app = tk.Tk()
app.geometry("150x100")
chkValue = tk.BooleanVar()
chkValue.set(True)
chkExample = tk.Checkbutton(app, text="Check Box", var=chkValue, command=callBackFunc)
chkExample.grid(column=0, row=0)
app.mainloop()
每当你按下按钮时,你都会看到它在 console 中打印出了 Oh. I'm clicked
。
Checkbutton 类中的选项 command
用于在按下按钮时绑定回调函数或方法。
更改 Tkinter Checkbutton
多选按钮默认值
与未选中的 Checkbutton
对应的默认值为 0,并且所选的 Checkbutton
的默认值为 1.你还可以将 Checkbutton
默认值及其关联的数据类型更改为其他值和/或数据类型。
import tkinter as tk
app = tk.Tk()
app.geometry("150x100")
chkValue = tk.StringVar()
chkExample = tk.Checkbutton(
app, text="Check Box", var=chkValue, onvalue="RGB", offvalue="YCbCr"
)
chkExample.grid(column=0, row=0)
chkExample.select()
print "The checkbutton value when selected is {}".format(chkValue.get())
chkExample.deselect()
print "The checkbutton value when deselected is {}".format(chkValue.get())
app.mainloop()
The checkbutton value when selected is RGB
The checkbutton value when deselected is YCbCr
chkExample = tk.Checkbutton(
app, text="Check Box", var=chkValue, onvalue="RGB", offvalue="YCbCr"
)
onvalue
和 offvalue
是更改所选和未选状态值的选项。它们可以有数据类型,如 Int
,String
,Float
或其他。
Checkbutton
多选按钮相关联的 Tkinter 数据类型应该跟它的 onvalue
和 offvalue
的数据类型相同。否则就会有 _tkinter.TclError
错误。