如何在tcl / tk Tablelist的标头内实现一个复选框,以实现select all功能。我找不到任何资源。有可能用任何方法吗?请指导。
答案 0 :(得分:1)
我绕过了这个问题,因为我没有找到任何在tablelist标头中添加小部件的直接方法。 我使用了两个16x16 png图像(一个未经检查的框;另一个复选框)作为-labelimage,使用labelcommand切换。
通过这种方式,用户可以了解单击该框的操作(实际上是整个标题)。
示例代码:(未优化)
package require Tk
package require tablelist
package require Img
namespace eval ::test {
variable toggleState 0
}
proc onClick {tbl col} {
if {$::test::toggleState==0} {
.tbl columnconfigure 0 -labelimage .image.uncheckedbox
## ENTER YOUR CODE HERE TO DESELECT ALL CHECKBOX IN CELL WINDOW OF 0th COLUMN.
set ::test::toggleState 1
} else {
.tbl columnconfigure 0 -labelimage .image.checkedbox
## ENTER YOUR CODE HERE TO SELECT ALL CHECKBOX IN CELL WINDOW OF 0th COLUMN.
set ::test::toggleState 0
}
}
tablelist::tablelist .tbl -columntitles {col1 col2 col3} -height 10 -width 100 -stretch all -stripebackground #e0e8f0
grid .tbl -padx 5 -pady 5 -sticky news
image create photo .image.checkedbox -file {E:\path\checked.png}
image create photo .image.uncheckedbox -file {E:\path\unchecked.png}
.tbl columnconfigure 0 -labelimage .image.uncheckedbox -labelcommand onClick