You are here

Example 37-13 Using a canvas to scroll a set of widgets 질문

안녕하세요.
Practical Programming in Tcl and Tk에 있는 예제를 하다가 안돼서 질문드립니다.
아래와 같이 작성하였는데 labels의 갯수가 10개 이상일 경우에 10개 까지만 보이고 나머지는 스크롤을 사용하려고 하는데
canvas 사이즈가 변하지 않네요. 머가 문제인지 아무리 봐도 잘몰라서 질문드립니다.

wm minsize . 100 50
canvas .canvas -yscrollcommand ".canvas.sy set" -width 10 -height 10
scrollbar .canvas.sy -orient vertical -command ".canvas yview"
pack .canvas.sy -side right -fill y
pack .canvas -expand true -fill both -side left

set f [frame .canvas.f -bd 0]
.canvas create window 0 0 -anchor nw -window $f

set labels [list a b c d e f g h i j k l m n o p q r s t u v w x y z]

set i 0

foreach e $labels {
        label $f.label$i -text $e
        entry $f.entry$i
        grid $f.label$i $f.entry$i
        grid $f.label$i -sticky w
        grid $f.entry$i -sticky we
        incr i 1
}

tkwait visibility $f.entry0
set bbox [grid bbox $f 0 0]
set incr [lindex $bbox 3]
set width [winfo reqwidth $f]
set height [winfo reqheight $f]
.canvas config -scrollregion "0 0 $width $height"
.canvas config -yscrollincrement $incr

set max [llength $labels]
if {$max > 10} {
        set max 10
}
set height [expr $incr * $max ]
.canvas config -width $width -height $height