>OK. (I presume you have run the big widget demo with the various canvas >sub-demos, and used the show-code buttons, which is a little easier than >grepping. Nope. I didn't realise that existed. I'll obviously give it a go, though! Thanks for the pointer. >Well, I have only learned (and mostly forgotten by now) the basics, plus I >don't have time to look into this, unfortunately. No problem. I'm starting to think that I should write a small document on what I've learnt while building my application, since it feels like I've wanted to do things that presumably aren't done all that often ... obviously I have weird requirements :-). >If no one else pops up with an answer, you might want to resort to >comp.lang.tcl and translate the answer to Ruby. I already posted the question to both the perl tk and the tcl newsgroups. I got some suggestions, but none of them were fruitful. However, the good news is that I've only just sorted it out. I don't know what I did wrong before, because I tried this at an earlier stage. I probably left something important out that I stuck in the second time around. I'll another message above this, so people don't waste their time trying to work it out for me. The following code does what I need ... frame = TkFrame.new(@canvas) labelText = TkVariable.new(nodeLabel.Text()) label = TkLabel.new(frame, 'textvariable' => labelText, "foreground" => @LABELCOLOUR) label.pack x = node.X + nodeLabel.DeltaX() y = node.Y + nodeLabel.DeltaY() frame.place "in" => @canvas, "x" => x, "y" => y