如何在 tcl 中使 TableList 可滚动?

How to make a TableList scrollable in tcl?

我正在使用 tablelist 包在一个框架中显示一个 table 列表(呵呵),但是这个框架非常小并且 [= 中有一堆列17=].

我需要一些方法让这个 table 列表可以水平和垂直滚动。

这是我的 tablelist

的代码
labelframe .t.lbf -text "Search Results for: $term" -padx 0 -width 47

tablelist::tablelist .t.mlb -selectmode multiple -columns {0 "File" 0 "Name" 0 "Version" 0 "Archtectures" 0 "Summary" 0 "Type"} -stretch all -background white -width 47                

pack .t.mlb  -in .t.lbf -anchor w

place .t.lbf -x 10 -y 125

我已经发布了向小部件(在本例中为文本小部件)添加滚动条的基本方法here。以下似乎有效:

toplevel .t
labelframe .t.lbf -text "Search Results for: $term" -padx 0 -width 47
tablelist::tablelist .t.lbf.mlb -selectmode multiple -columns {0 "File" 0 "Name" 0 "Version" 0 "Archtectures" 0 "Summary" 0 "Type"} -stretch all -background white -width 47 -xscroll {.t.lbf.h set} -yscroll {.t.lbf.v set}

scrollbar .t.lbf.v -orient vertical   -command {.t.lbf.mlb yview}
scrollbar .t.lbf.h -orient horizontal -command {.t.lbf.mlb xview}

# Lay them out
grid .t.lbf -sticky nsew

grid .t.lbf.mlb .t.lbf.v -sticky nsew
grid .t.lbf.h            -sticky nsew

# Tell the tablelist widget to take all the extra room
grid rowconfigure    .t.lbf .t.lbf.mlb -weight 1
grid columnconfigure .t.lbf .t.lbf.mlb -weight 1

place .t.lbf -x 10 -y 125

其他读者请注意:OP 想要将 tablelist 包装在 labelframe 中,然后 place 那个。没有这些要求,任务会变得更容易一些。同样,请参阅上面 link 中的示例:将其重新用于 table 列表仅涉及替换文本小部件。

文档:grid, labelframe, place, scrollbar, toplevel