У меня есть список объектов неизвестной длины, я хочу создать 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
, как я могу назначить переменную внутри массива для флажка или, что еще лучше, есть ли способ получить текущее значение непосредственно из флажка без использования промежуточных переменных?