Я не могу bind
использовать клавиши Escape
и Return
в своем коде Tcl/Tk. Следующий код воспроизводит ошибку. Когда я нажимаю клавишу Esc
или Enter
, я получаю следующее сообщение об ошибке:
Ошибка: невозможно прочитать "cmd": такой переменной нет
proc OkCancel { cmd } {
button .${cmd}.ok -text "OK" -command [list myOk $cmd ]
button .${cmd}.cancel -text "Cancel" -command [list myCancel .$cmd]
grid .${cmd}.ok .${cmd}.cancel -sticky e
bind .$cmd <Return> { myOk $cmd ; break }
bind .$cmd <Escape> { myCancel .${cmd} ; break }
}
proc myOk { cmd } {
puts "The command name is = $cmd"
}
proc myCancel { arg } {
destroy $arg
}
proc test { } {
set cmd "hello"
toplevel .$cmd
OkCancel $cmd
}
test