Tk and instance variables (pickaxe book Ed 2, p260)

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"?

···

--
John Maclean
MSc (DIC)
07739 171 531

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

···

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
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"?