On 07/11/15 04:34, Chris Roy-Smith wrote:
def genF(ofield): ... for x in range(10):
def second(): main=Toplevel(root) ofield=Text(main, height=15, width=15) ofield.pack() B3=Button(main, text='exit', command=main.destroy) B3.pack() B4=Button(main, text='fill text', command=genF(ofield))
You call a function by sup[plying the parens after its name. So the function gets called here. The normal way to circumvent that in Tkinter is to use a lambda expression to defer execution, like so: B4=Button(main, text='fill text', command=lambda wgt=ofield : genF(wgt))
B4.pack() main.mainloop()
I'm not sure you need the second mainloop. I think the root level mainloop will work for your window too. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor