Hi Malcom, I have never heard of packing widgets within a canvas. Just use create_window, so there is no automatic placement, you need to handle all placement.
Note with the following, packing a label within a canvas: from Tkinter import * root = Tk() c=Canvas(root, bg="red", width=400, height=400) c.pack() d=Label(c, text="Hello") d.pack() root.mainloop() The Label widget in fact REPLACES the canvas in the display rather than being packed within it. I don't know why (try commenting out the d.pack() line) and see the difference.) Mick On Fri, Dec 17, 2010 at 6:52 PM, <pyt...@bdurham.com> wrote: > This question is related to using Canvases and Frames as containers and does > not consider the drawing capabilities of the Canvas widget. > > Canvas and Frames are both containers. My understanding is that both of > these containers provide identical layout behaviors via their pack, grid, > and place methods (is this really true?). In other words, I should be able > to replace a Frame with a Canvas and have identical behavior, correct? > > From a container perspective, would it be correct to describe a Canvas as an > enhanced Frame with the following capabilities? > > - the ability to support virtual sizes greater than the visible display area > - the scrollbar, scroll and viewport features associated with having a > larger virtual display area > > One of my points of confusion with Canvas containers is figuring out what > techniques to use for the layout of traditional widgets. Can I use regular > pack and grid placement always, only when a canvas does not have scrolling, > or never? When should one use the create_window() technique for widget > placement? > > Thank you, > Malcolm > _______________________________________________ > Tkinter-discuss mailing list > Tkinter-discuss@python.org > http://mail.python.org/mailman/listinfo/tkinter-discuss > > _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss