Checkbutton有两个不同的值,点击这个按钮将会在两个值间切换,选择和取消选择。俗称复选框。
示例:
import Tkinter as tk
window = tk.Tk()
window.title('My Window')
window.geometry('500x300')
l = tk.Label(window, bg='yellow', width=20, text='I love both')
l.pack()
def printselection():
if (v1.get() == 1) & (v2.get() == 0):
l.config(text='I love only Python ')
elif (v1.get() == 0) & (v2.get() == 1):
l.config(text='I love only C++')
elif (v1.get() == 0) & (v2.get() == 0):
l.config(text='I do not love either')
else:
l.config(text='I love both')
v1 = tk.IntVar() # 定义v1和v2整型变量用来存放选择行为返回值0或者1
v2 = tk.IntVar()
v1.set(1) # 设置默认选中状态
v2.set(1)
l1 = tk.Checkbutton(window, text='Python',variable=v1, command=printselection)
l1.pack(anchor='w')
l2 = tk.Checkbutton(window, text='C++',variable=v2, command=printselection)
l2.pack(anchor='w')
window.mainloop()
详解:
tk.Checkbutton(window, text='Python',variable=v1, command=printselection)的完整代码应该是:
tk.Checkbutton(window, text='Python',variable=v1, onvalue=1,offvalue=0,command=printselection) 隐藏了onvalue=1,offvalue=0。即onvalue默认等于1,offvalue默认等于0处理了。
也可以手动设置为其他值,可以看看产生的效果,比如onvalue=0,offvalue=1;onvalue=1,offvalue=2。
1.onvalue表示checkbutton选中时的返回值,offvalue表示checkbutton取消选中的返回值。
2.若variable属性指定变量v,v.get()用来获取checkbutton选中与否状态的返回值:onvalue或offvalue的值。
3.使用v.set(x)设置checkbutton默认状态:x和onvalue、offvalue的值进行匹配,等于哪个就置为哪个状态。