如何理解
首先要想灵活使用记得彻彻底底的理解这个按钮是怎么创建的。
这两种按钮的参数有很多,基本上和button和text的内容差不多。鼠标放置在其上可以观察到大概有这些主要参数
要使用单选和多选按钮时,我们一般会通过用他的值来判断是否已经选择。因此我们需要用到tk库的专属变量(tk指tkinter),即tk.xxxVar。其中xxx是整形就为Int,xxx是字符串就为String
*********************************************************************************************
使用过程
多选按钮
import tkinter as tk
root=tk.Tk()
root.geometry('500x300')
a=tk.IntVar()
b=tk.IntVar()
def qq():
print(1)
c1=tk.Checkbutton(root,text='1按钮',variable=a,onvalue=1,
offvalue=0,width=10,height=5,command=qq).pack()
c2=tk.Checkbutton(root,text='2按钮',variable=b,onvalue=1,
offvalue=0,width=10).pack()
def qr1():
if a.get()==1 and b.get()==1:
print(2)
elif a.get()==1 or b.get()==1:
print(1)
else:
print(0)
tk.Button(text='确认',command=qr1,width=10,height=2).pack()
root.mainloop()
其中onvalue是选定后返回的值。offvalue是未选定返回的值。variable绑定一个tk变量命名为a,用于储存按钮的值,需要使用这个值时需要get提取。command是选定或者取消时都会运行qq函数的一个事件。
单选按钮
d=tk.StringVar()
d.set('55')
e1=tk.Radiobutton(root,variable=d,text='3按钮',value='55').pack()
e2=tk.Radiobutton(root,variable=d,text='4按钮',value='100').pack()
单选按钮的值是储存在一个tk变量里的,因为你只能选择一个值,所以只需要储存选择这个值的变量即可。
注意:一开始需要为单选按钮设置值,这里设置成与3按钮的确认值一致那么它的初始选择就会是3按钮。如果不设置则会默认两个都选,如果绑定了command事件则会默认选第一项。
***************************************************************************
全部代码:
import tkinter as tk
root=tk.Tk()
root.geometry('500x300')
a=tk.IntVar()
b=tk.IntVar()
def qq():
print(1)
c1=tk.Checkbutton(root,text='1按钮',variable=a,onvalue=1,
offvalue=0,width=10,height=5,command=qq).pack()
c2=tk.Checkbutton(root,text='2按钮',variable=b,onvalue=1,
offvalue=0,width=10).pack()
def qr1():
if a.get()==1 and b.get()==1:
print(2)
elif a.get()==1 or b.get()==1:
print(1)
else:
print(0)
tk.Button(text='确认',command=qr1,width=10,height=2).pack()
# *****************************************************************
d=tk.StringVar()
d.set('55')
e1=tk.Radiobutton(root,variable=d,text='3按钮',value='55').pack()
e2=tk.Radiobutton(root,variable=d,text='4按钮',value='100').pack()
def qr2():
if d.get()=='55':
print(10)
if d.get()=='100':
print(100)
tk.Button(text='确认',command=qr2,width=10,height=2).pack()
root.mainloop()
结果:
2月25日