On Thu, 24 Feb 2005 21:26:29 -0500, Kent Johnson <[EMAIL PROTECTED]> wrote: > Adam Cripps wrote: > > I'm trying to create recursive Tkinter buttons with: > > > > for i in range(0,10): > > print i > > buttonlabel = "field " +str(i) > > button[i] = Button (text=buttonlabel) > > button[i].grid(column=3, row = i+3) > > > > However, Tkinter doesn't seem to like it with > > Please show us the whole program. This works for me: > > from Tkinter import * > > root = Tk() > button = {} > for i in range(0,10): > print i > buttonlabel = "field " +str(i) > button[i] = Button (text=buttonlabel) > button[i].grid(column=3, row = i+3) > > root.mainloop() > > Kent
Sorry guys for not be clear - recursive isn't the correct term - that's what you get when you fire off an email late at night. I want to create 10 buttons through a loop, each with different text and passing a different var to another function. My current code is: (the bit I'm currently working on is near the bottom) #!/usr/bin/env python from Tkinter import * from tkFont import * from string import * from sys import* from re import * class Application(Frame): def __init__(self, master=None, geometry="500x200"): """Starts the application off""" Frame.__init__(self,master) self.grid() self.addMenu() self.createWidgets() def quit(self): self.master.quit() def save(self): print "saving..." def open(self): print "opening..." def about(self): print "about" def addMenu(self): menu = Menu(root) root.config(menu=menu) filemenu = Menu(menu, tearoff=0) menu.add_cascade(label="File", menu=filemenu) filemenu.add_command(label="Open", command=self.open) filemenu.add_command(label="Save...", command=self.save) filemenu.add_separator() filemenu.add_command(label="Exit", command=self.quit) helpmenu = Menu(menu, tearoff=0) menu.add_cascade(label="Help", menu=helpmenu) helpmenu.add_command(label="About...", command=self.about) def createWidgets(self): """This creates all the widgets in the main frame""" titleLabel = Label(text="Squawk report generator") titleLabel.grid(column = 0, row=0) firstNameLabel = Label(text="First name: ") firstNameLabel.grid(column = 0, row = 3, sticky = NW) self.firstname = StringVar() firstNameEntry = Entry(textvariable = self.firstname) firstNameEntry.grid(column =1, row=3, sticky = NW) surNameLabel = Label(text="Surname: ") surNameLabel.grid(column = 0, row = 4, sticky = NW) self.surname= StringVar() surNameEntry = Entry(textvariable=self.surname) surNameEntry.grid(column = 1, row=4, stick=NW) button = Button(text ="hello") #Now we will loop around showing the entry fields button = [] for i in range(0,10): print i buttonlabel = "field " +str(i) button[i].append = Button (text=buttonlabel) button[i].grid(column=3, row = i+3) root = Tk() app = Application(root) app.master.title("Squawk Report Generator") app.mainloop() The current error is: File "report.py", line 80, in createWidgets button[i].append = Button (text=buttonlabel) IndexError: list index out of range TIA Adam -- http://www.monkeez.org PGP key: 0x7111B833 _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor