Tk 没有内置的表格小部件,所以我假设您正在使用此处的 Tktable/Tile 。
这是我拼凑在一起的一个示例,它禁用了 2 个列。基本上,您通过使用 -coltag 命令和函数将要编辑的所有条目分配给特定标签,然后将状态等属性应用于该标签。
package require Tktable
array set cells {
0,0 David 0,1 "1234 Fake st" 0,2 foo
1,0 John 1,1 "444 New York Ave" 1,2 bar
}
# This function returns the tag to assign to all cells in col $col
proc tagCol col {
# If we're name or address column, add the disabledColumn tag to it
if {$col == 0 || $col == 1} {
return disabledColumn;
}
}
table .mytable -rows 2 -cols 3 -variable cells -coltagcommand tagCol
# Disable editing of the disabled column entries
.mytable tag config disabledColumn -state disabled -fg blue
pack .mytable