| pythonware.com | products ::: library ::: search ::: daily Python-URL! |
PatternsPatternsThe Radiobutton widget is very similar to the check button. To get a proper radio behavior, make sure to have all buttons in a group point to the same variable, and use the value option to specify what value each button represents:
v = IntVar()
Radiobutton(master, text="One", variable=v, value=1).pack(anchor=W)
Radiobutton(master, text="Two", variable=v, value=2).pack(anchor=W)
If you need to get notified when the value changes, attach a command callback to each button. To create a large number of buttons, use a loop:
MODES = [
("Monochrome", "1"),
("Grayscale", "L"),
("True color", "RGB"),
("Color separation", "CMYK"),
]
v = StringVar()
v.set("L") # initialize
for text, mode in MODES:
b = Radiobutton(master, text=text,
variable=v, value=mode)
b.pack(anchor=W)
Figure 38-1. Standard radiobuttons
To turn the above example into a "button box" rather than a set of radio buttons, set the indicatoron option to 0. In this case, there's no separate radio button indicator, and the selected button is drawn as SUNKEN instead of RAISED: Figure 38-2. Using indicatoron=0
|