如何在Tk表中禁用TCL Tk的完整列

时间:2012-09-25 14:33:58

标签: tk

我是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表的名称和地址栏。任何人都可以告诉我我怎么能这样做。我很长时间都在尝试这个。请帮我 。

2 个答案:

答案 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是只读标题。

希望我能帮助