>                
>                 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)
> 
> The current error is:
> 
>   File "report.py", line 80, in createWidgets
>     button[i].append = Button (text=buttonlabel)
> IndexError: list index out of range
> 
 button = []
for i in range(0,10):
     print i
     print button[i]


Will cause the exact same error as button[i].append. Why? button=[],
it has no index.
Perhaps you just mean button[i] = Button (text=buttonlabel)?

Regards,


Liam Clarke
On Fri, 25 Feb 2005 06:53:56 +0000, Adam Cripps <[EMAIL PROTECTED]> wrote:
> 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

> TIA
> Adam
> --
> http://www.monkeez.org
> PGP key: 0x7111B833
> _______________________________________________
> Tutor maillist  -  [email protected]
> http://mail.python.org/mailman/listinfo/tutor
> 


-- 
'There is only one basic human right, and that is to do as you damn well please.
And with it comes the only basic human duty, to take the consequences.
_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to