我是TCL Tk的新手,我正在使用Tk表在我的GUI中创建一个表。
Basically it contains some hardware register's info like its name, address, value....etc.
Now i want that user should not be able to change the register address and name and hence i
想完全禁用Tk表的名称和地址栏。任何人都可以告诉我我怎么能这样做。我很长时间都在尝试这个。请帮我 。
答案 0 :(得分:1)
Tk没有内置的表格小部件,因此我假设您使用的是here中的Tktable / Tile。
以下是我将两个列禁用的示例。基本上,您使用-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
答案 1 :(得分:0)
您还可以使用 -titlerows'n'和 -titlecols'm'中的任何一个选项来声明第一个'n'行是只读标题,或者第一个'm'cols是只读标题。
希望我能帮助