Checkbutton&Radiobutton
多选按钮和单选按钮
from tkinter import *
from tkinter.messagebox import showinfo
demo =['Red', 'Blue', 'Green', 'Yellow', 'White']
class Ckbn(Frame):
def __init__(self, master=None, cnf={}, **kw):
self.vars = []
Frame.__init__(self, master, cnf, **kw)
self.pack()
for key in demo:
var = IntVar()
Checkbutton(self, text=key, variable=var).pack(side=LEFT) # Checkbutton用法,没有value,variable反馈整数
self.vars.append(var)
def get(self):
return self.vars
class Robn(Frame):
def __init__(self, master=None, cnf={}, **kw):
Frame.__init__(self, master, cnf, **kw)
self.pack()
self.var = StringVar()
for key in demo:
Radiobutton(self, text=key, value=key, variable=self.var).pack(side=LEFT)
# Radiobutton用法,value可赋值字符串,variable返回value
def get(self):
return self.var
def report(vars, ro):
tmp = []
for var in vars:
tmp.append(str(var.get()))
rpt = ','.join(tmp)
rpt += '\n%s' % (ro.get())
showinfo('Report', rpt)
if __name__ == '__main__':
root = Tk()
root.title('Choose Button')
v = Ckbn(root).get()
r = Robn(root).get()
Button(root, text='Report', command=lambda: report(v, r)).pack(side=LEFT)
Button(root, text='Quit', command=root.quit).pack(side=RIGHT)
root.mainloop()