我正在使用5个单选按钮,在调用它时会创建特定于每个按钮的新小部件。但是,一旦创建了窗口小部件,就无法使用相同的路径名创建相同的窗口小部件,或者显示错误。单选按钮可以多次单击,从而产生前面提到的错误。无论如何要么限制连续两次按下相同的单选按钮,要么阻止窗口重新创建?
答案 0 :(得分:1)
使用[winfo exists]
。像这样的东西:
radiobutton .r1 -text 1 -value 1 -variable radiovalue -command make_widget
radiobutton .r2 -text 2 -value 2 -variable radiovalue -command make_widget
pack .r1 .r2
proc make_widget {} {
global radiovalue
set name .widget_$radiovalue
if {[winfo exists $name]} {
puts "$name already exists"
} else {
pack [label $name -text $name]
}
}
答案 1 :(得分:0)
您可以禁用按下的单选按钮,直到按下另一个按钮,或者您可以在创建任何小部件之前删除现有的小部件组。