[CL] wanted a scrolling [canvas] model to which he could refer others. Mightily distressed that the first eight instances he came across in books and on the [Web] all were complicated or do things end-users consistently call "stupid" ([scrollbar]s don't really behave properly, and so on)--or both!-- he offers this example as an alternative: ---- ====== set height 400 set width 600 set borderwidth 2 set hscroll .hscroll set vscroll .vscroll set canvas .c scrollbar $hscroll -orient horiz -command "$canvas xview" scrollbar $vscroll -command "$canvas yview" canvas $canvas -relief sunken -borderwidth $borderwidth \ -width $width -height $height \ -xscrollcommand "$hscroll set" \ -yscrollcommand "$vscroll set" # Ensure that window resizings retain scroll bars. pack $hscroll -side bottom -fill x pack $vscroll -side right -fill y pack $canvas -side right -fill both -expand 1 # Somebody want to express the above in "grid"? # That'd be good practice. # Put something visible on the canvas # so we have a sense of what we're seeing. $canvas create line 0 0 $width $height $canvas create line 0 $height $width 0 $canvas configure -scrollregion [$canvas bbox all] It will be interesting to see when '''its''' first fault emerges. ====== ---- [ulis], 2003-07-05: If you need [grid] in place of [pack]: ====== # Ensure that window resizings retain scroll bars. grid $canvas -row 0 -column 0 -sticky nswe grid $vscroll -row 0 -column 1 -sticky ns grid $hscroll -row 1 -column 0 -sticky ew grid rowconfig . 0 -weight 1 grid columnconfig . 0 -weight 1 ====== ---- Important! The ''usage'' of this scrolling canvas is that one creates [http://www.tcl.tk/man/tcl8.4/TkCmd/canvas.htm#M45] [widget]s onto the canvas, rather than managing them as children. In particular, if you're trying to frame $canvas.subframe ... rather than $canvas add rectangle ... you're headed for trouble. [MG] Aug 21 2007 - Does anyone have a minimal example of a scrollable canvas meant for containing other widgets? I'm trying to put a frame inside a canvas to scroll it, but my lack of [canvas]-use in the past is coming back to haunt me, and I can't find any good, small examples of how to do it... ''[MG], a few minutes later'' Discovered what the problem I was having was, oddly enough on the [canvas] page - my widgets weren't children of the canvas, and so stuck out over it. Making all the widgets displayed on the canvas children of it solved the problem (thanks DKF!). <> Graphics