def RadioWithLabelframe(cls, master, texts=[], values=[], command=None): '''Sample usage: from ui import ROOT frame1 = Widget.Labelframe(ROOT,text = "XXXX") Window.widg = frame1 Window.Pack(side = "left", fill="both", expand="no", padx = "0.2c") frame2 = None def test(a): print a if frame2: frame2.config(text = var.get()) t.delete("1.0","end") t.insert("end",var.get()) var,rds = Components.RadioWithLabelframe(frame1, texts = [1,2,3,4,5], values = [1,2,3,4,5], command = lambda: test("if command has parameter; please use lambda.like this")) frame2 = Widget.Labelframe(ROOT,text = "YYYY") Window.widg = frame2 Window.Pack(side = "left", fill="both", expand="yes", padx = "0.2c") (t,x,y) = Components.TextWithScrollbar(frame2) ROOT.mainloop() ''' radios = [] var = Tkinter.StringVar() radio_items = dict(zip(texts, values)) for text, value in radio_items.items(): Window.widg = Widget.Radiobutton(master, variable=var) Window.Config(text=text, value=value) if command: Window.Config(command=command) Window.Pack(side="top", fill="x", expand="yes", pady=2, anchor="w") radios.append(Window.widg) if radios: return var, radios