''[MGS]'' - Sometimes I like to have labels that automatically wrap to the width of the window, sort of like a text widget, but without the scrolling (i.e. the whole label text is always visible). It's pretty easy to do (for basic text-only labels): ====== label .l -text "A label with a long text string to test auto-wrapping" pack .l -fill x bind .l [list %W configure -wraplength %w] ====== Then resize the toplevel window. You have to make sure that the label is packed/gridded to fill available space. Of course, this simplified version ignores things like padding and compound images, so here's a more complete example: ====== proc label:wrap {W w} { set px [$W cget -padx] if { [catch {$W cget -compound} side] } { set wl [expr {$w - (2 * $px)}] } else { switch -- $side { left - right { set image [$W cget -image] if { [string length $image] } { set iw [image width $image] } else { set iw 0 } set wl [expr {$w - (3 * $px) - $iw}] } default { set wl [expr {$w - (2 * $px)}] } } } $W configure -wraplength $wl } pack propagate . 0 set image [image create photo] $image put red -to 0 0 16 16 label .l \ -bg white \ -text "A label with a long text string to test auto-wrapping" \ -image $image \ -compound left \ -anchor w \ -justify l \ -padx 10 pack .l -fill x bind .l [list label:wrap %W %w] ====== ---- ''[MGS]'' [[2003/04/20]] - I have combined the above code with that in [label selection] and created a package which you can find in the '''Links''' section at [Mark G. Saye]. ---- ''[JNC]'' [[2010/06/03]] - On TkChat, emiliano came up with this solution which seems to work fine: ====== bind $label { %W configure -wraplength [expr { %w - 4 }] } ====== ----- 2011-06-08 [http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/9f109de2956ddd1c/eea2554219a642fe#eea2554219a642fe%|%clt:wraplength and dynamically-sized widgets %|%] !!!!!! [Mark G. Saye] %| [Category Package] | [Category Widget] |% !!!!!!