列表框是显示一系列字符串的组件,如果一个列表框有多个数据同时显示,那么列表框会根据其窗口大小显示数据。通常,列表框会和滚动条结合使用,以便滑动滚动条来调整和查看列表框中的数据,而滚动条的大小和位置决定了列表框中的可见区域。
问题描述
通过tcl语言实现列表框和滚动条的联动功能。
具体要求
1.拖动滚动条,列表框中的可见区域随着滚动条移动方向而改变;
2.调整列表框中的可见区域,滚动条位置也跟着发生移动。
工作原理
用户调用滚动操作时,滚动条利用-command命令通知列表框,同时,列表框在调整可见区域时利用-yscrollcommand来通知滚动条。
代码脚本
# A Scrollbar was built in the case
foreach n {i love China 0 1 2 3 4 5 6 7 8 9 a b c d e f g h} {
lappend list1 item1-$n }
set f [labelframe .f -relief sunken -text "Scrollbar Application" -bd 2 ]
set lb1 [listbox $f.lb1 -list list1 -yscrollcommand {$** set} -relief raised -bd 2 -height 10]
set ** [scrollbar $f.** -command {$lb1 yview} -bd 2 ]
grid $f -sticky nsew
grid $lb1 -row 0 -column 0 -sticky w
grid $** -row 0 -column 1 -sticky ns;