On Sat, 14 Jan 2006 22:54:58 +0100, John Maclean <info / jayeola.org> wrote: > Chaps, > > There's a small section of code from the second edition of the pickaxe > book on p260. > > require 'tk' > > image1 = TkPhotoImage.new {file "img1.gif" } > image2 = TkPhotoImage.new {file "img2.gif" } > > b = TkButton.new(@root) do # <---- This line > # more code > # not shown for sake of brevity > end > # more code > # more code > Am I right in saying that the line that creates the new button has an > instance variable that will be used to define the main root "container"? > If my (horrible) memory of the 15 minutes I've worked in Tk serves me right for a change, there's a @root = TkRoot.new missing there somewhere. All other widgets should require a parent container parameter for their constructor. TkRoot serves as the toplevel container for a Tk interface and contains some plumbing related to the event loop and such. David Vallner