Python GUI Tk : RadioButton

What happens when some buttons have same value

from Tkinter import * 
     
root = Tk()
var = StringVar()

for i in range(10):
    rad = Radiobutton(root, text=str(i), variable=var, value=str(i % 3))
    rad.pack(side=LEFT)

root.mainloop()

Radio Button Demo

from Tkinter import *

root = Tk()
root.title('Radiobutton')

fruit=[('Option 1', 1), ('Option 2', 2), ('Option 3', 3),
       ('Option 4', 4), ('Option 5', 5), ('Option 6', 6)]
var = IntVar()
for text, value in fruit:
    Radiobutton(root, text=text, value=value, variable=var).pack(anchor=W)
var.set(3)
root.mainloop()

Toogle group Radio Button

from Tkinter import *

root = Tk()
root.title('Radiobutton')

cheese=[('Option 1', 1), ('Option 2', 2), ('Option 3', 3),
       ('Option 4', 4), ('Option 5', 5), ('Option 6', 6), ('Option 7', 7)]
var = IntVar()
for text, value in cheese:
    Radiobutton(root, text=text, value=value, variable=var,
                indicatoron=0).pack(anchor=W, fill=X, ipadx=18)
var.set(3)
root.mainloop()

Radio button in a group

from Tkinter import *

class AllTkinterWidgets:
    def __init__(self, master):
        frame = Frame(master, width=500, height=400, bd=1)
        frame.pack()

        iframe1 = Frame(frame, bd=2, relief=SUNKEN)
        Button(iframe1, text='Button').pack(side=LEFT, padx=5)
        Checkbutton(iframe1, text='CheckButton').pack(side=LEFT, padx=5)

        v=IntVar()
        Radiobutton(iframe1, text='Button', variable=v,
                    value=3).pack(side=RIGHT, anchor=W)
        Radiobutton(iframe1, text='Dio', variable=v,
                    value=2).pack(side=RIGHT, anchor=W)
        Radiobutton(iframe1, text='Ra', variable=v,
                    value=1).pack(side=RIGHT, anchor=W)
        iframe1.pack(expand=1, fill=X, pady=10, padx=5)


    
root = Tk()
#root.option_add('*font', ('verdana', 10, 'bold'))
all = AllTkinterWidgets(root)
root.title('Tkinter Widgets')
root.mainloop()

Radio Button Menu

from Tkinter import *

class TestMenu:
    def __init__(self, master):
  self.master = master
  self.menubar = Menu(self.master)

        self.radmenu = Menu(self.menubar)
        self.radmenu.add_radiobutton(label='A')
        self.radmenu.add_radiobutton(label='B')
        self.radmenu.add_radiobutton(label='C')
        self.radmenu.add_radiobutton(label='D')
        self.radmenu.add_radiobutton(label='E')
        self.radmenu.add_radiobutton(label='F')
        self.radmenu.add_radiobutton(label='G')
        self.radmenu.add_radiobutton(label='H')
        self.radmenu.add_radiobutton(label='I')

        self.menubar.add_cascade(label="Radiobutton Menu", menu=self.radmenu)

  self.top = Toplevel(menu=self.menubar, width=500, relief=RAISED,
                            borderwidth=2)

def main():
    root = Tk()
    root.withdraw()
    app = TestMenu(root)
    root.mainloop()

if __name__ == '__main__':
    main()


Radio button bar: get selected button for a group radio button

from Tkinter import *

class Radiobar(Frame):
    def __init__(self, parent=None, picks=[], side=LEFT, anchor=W):
        Frame.__init__(self, parent)
        self.var = StringVar()
        for pick in picks:
            rad = Radiobutton(self, text=pick, value=pick, variable=self.var)
            rad.pack(side=side, anchor=anchor, expand=YES)
    def state(self):
        return self.var.get()


class Quitter(Frame):                      
    def __init__(self, parent=None):         
        Frame.__init__(self, parent)
        self.pack()
        widget = Button(self, text='Quit', command=self.quit)
        widget.pack(expand=YES, fill=BOTH, side=LEFT)
    def quit(self):
        ans = askokcancel('Title', "Really quit?")
        if ans: Frame.quit(self)


if __name__ == '__main__':
    root = Tk()
    gui = Radiobar(root, ['A', 'B', 'C'], side=TOP, anchor=NW)
    gui.pack(side=LEFT, fill=Y)
    gui.config(relief=RIDGE,  bd=2)

    def allstates(): print gui.state() 
    Quitter(root).pack(side=RIGHT)
    Button(root, text='Peek', command=allstates).pack(side=RIGHT)
    root.mainloop()

Get Radio button state

from Tkinter import *      

root = Tk()           

var  = IntVar()       

for i in range(10):
    rad = Radiobutton(root, text=str(i), value=i, variable=var)
    rad.pack(side=LEFT)

root.mainloop()
print var.get() 

Hold on to your radio variables

from Tkinter import *      
root = Tk()                   

def radio1():                   
    tmp = IntVar()
    for i in range(10): 
        rad = Radiobutton(root, text=str(i), value=i, variable=tmp)
        rad.pack(side=LEFT)
    tmp.set(5)    

radio1()
root.mainloop()

Save Radio button states

from Tkinter import *      
state = ''
buttons = []

def onPress(i):
    global state
    state = i
    for btn in buttons:
        btn.deselect()
    buttons[i].select()

root = Tk()
for i in range(10):
    rad = Radiobutton(root, 
                      text=str(i), 
                      value=str(i), 
                      command=(lambda i=i: onPress(i)) )
    rad.pack(side=LEFT)
    buttons.append(rad)
root.mainloop()

print state