Помогите мне в одной из моих проблем, когда я взял свое мышление, чтобы продолжить дальше. Я создаю radobutton внутри цикла foreach. Также хотел, чтобы для каждой из этих кнопок была опция -command, так как я не уверен, сколько кнопок будет создано (оно всегда динамическое), я помещаю его в цикл foreach.Как присоединить proc как имя переменной к кнопке, созданной контуром
Кроме того, я прикрепляю proc как переменную, поэтому всякий раз, когда нажимается любой из этих переключателей, будет выполняться тело функции proc, но этот код не работает должным образом и бросает ошибку при выборе радиообмена. Я думаю, что переменные $ эля и $ ж не получает передается срабатывать
proc check_lib_name {} {
global ENTRYfilename5 ENTRYfilename f mylist elem w
cd $ENTRYfilename
set dirnames [glob -type d *]
set b 7
set mylist {}
foreach f $dirnames {
set r 2
lappend mylist $f
}
set w 0
foreach elem $mylist {
radiobutton .top.d.$elem -text $elem -command $elem.$w -value $elem.abc
grid .top.d.$elem -row $b -column $r -sticky nsew
incr b
incr w
}
#### Proc attached with radiobuttons
proc $elem.$w {} {
global ENTRYfilename5 ENTRYfilename elem w
cd $elem
set rrpath [glob -type d *]
puts $rrpath
set del "/"
set klpath [concat [string trim $ENTRYfilename][string trim $del][string trim $elem][string trim $del][string trim $rrpath]]
puts $klpath
cd $klpath
exec [myRun.sh]
}
}
Это выглядит неправильно: 'exec [myRun.sh]' - вы, вероятно, хотите 'exec myRun.sh'. С кодом, который у вас есть, Tcl вызовет * Tcl proc * 'myRun.sh', а затем использует * возвращаемое значение * этого proc как аргумент' exec'. –