我有一个未知长度的对象列表,我想创建 2 个复选框列表,在每个列表中为列表的每一行创建一个复选框。我还需要能够访问复选框并检查它们的值。
由于我没有找到从路径获取复选框值的方法,我想创建一个全局数组来保存复选框的变量,并尝试了以下方法:
global cb
set i 0
foreach port $ports {
set to_cb [checkbutton $to.cb_to_$i -variable [list $cb(to$i)] -text $port -command [list __sp_from_to_changed $from $to]]
set from_cb [checkbutton $from.cb_from_$i -variable [list $cb(from$i)] -text $port -command [list __sp_from_to_changed $from $to]]
grid $to_cb -row [expr $i + 2] -sticky nsew
grid $from_cb -row [expr $i + 2] -sticky nsew
incr i
当我获取错误can't read "cb(to0)": no such variable
时,如何在数组中为复选框分配一个变量,或者更好的是,有没有办法直接从复选框获取当前值而不使用中间变量?