tkinter模块(五)

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()

效果展示1
效果展示2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值