Hi Joe, On Thu, 3 Aug 2006 11:12:28 -0700 "Joe Cox" <[EMAIL PROTECTED]> wrote:
> I am still having a problem getting my listbox's binded to the radiobuttons. > I am getting closer. > > ###Assign each Radiobutton with its own listbox values, show one selected > button and one listbox### > > > > from Tkinter import * > > root = Tk() > > var = StringVar() > var.set('a') > > { 'Aluminum' : ['Wrought', 'Die cast'], > 'Steel' : ['Low Carbon', 'Medium-high carbon','Alloy'] } > Didn't you want to keep a reference to the dictionary? > > def radio_command(): > if var.get() == 'a': > # button with value 'a' selected > listbox.insert('a') #here I am trying to put the string starting > with 'Steel' in the listbox > elif var.get() == 'b': > # button with value 'b' selected > listbox.insert('b') #here I am trying to put the string starting > with 'Aluminum' in the listbox > > > > radio_a = Radiobutton(root,text="Steel", variable=var, value='a', > command=radio_command).pack() Are you aware that pack() returns None, so you actually assign None to all your radio_* variables; if you want to keep access to the widgets you need to do: radio_a = Radiobutton() radio_a.pack() > radio_b = Radiobutton(root,text="Aluminum", variable=var, value='b', > command=radio_command).pack() > radio_c = Radiobutton(root,text="Cast Iron", variable=var, value='c', > command=radio_command).pack() > radio_d = Radiobutton(root,text="Nickel", variable=var, value='d', > command=radio_command).pack() > radio_e = Radiobutton(root,text="Titaniuim", variable=var, value='e', > command=radio_command).pack() > > > listbox = Listbox(root) > for item in (): > listbox.insert(END, item) The last two lines don't really seem to have much sense, if you want an empty Listbox, just don't insert anything. > listbox.pack(side=LEFT, fill=BOTH) > > root.mainloop() > I am not sure what your question is here, maybe you want to try something like (untested): var = StringVar() var.set('Steel') listbox = Listbox(root) listbox.pack(side=LEFT, fill=BOTH) metals = {'Aluminum' : ['Wrought', 'Die cast'], 'Steel' : ['Low Carbon', 'Medium-high carbon','Alloy'] } def radio_command(): listbox.delete(0, 'end') for m in metals[var.get()]: listbox.insert('end', m) for metal in metals.keys(): # assuming that you don't need to keep references to all buttons Radiobutton(root, text=metal, variable=var, value=metal, command=radio_command).pack() # fill the listbox with initial values radio_command() I hope this helps Michael _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor