1

我是 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 表的名称和地址列。谁能告诉我我该怎么做。我很长时间以来都在尝试这个。请帮我 。

4

2 回答 2

1

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
于 2012-09-25T20:20:20.750 回答
0

您还可以使用任何选项-titlerows 'n'-titlecols 'm'来声明前 'n' 行是只读标题,或者前 'm' 列是只读标题。

希望我有所帮助

于 2014-01-23T08:18:50.600 回答