单选按钮连续单击两次返回错误



我使用了5个单选按钮,当调用它时,它会创建特定于每个按钮的新窗口小部件。但是,一旦创建了小部件,就不能使用相同的路径名创建相同的小部件,否则就会显示错误。单选按钮可以多次单击,这会导致前面提到的错误。是否有限制连续两次按下同一单选按钮或阻止重新创建窗口的方法?

使用[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]
    }
}

您可以禁用按下的单选按钮,直到按下另一个按钮,或者您可以在创建任何窗口小部件之前删除现有的窗口小部件集(如果有的话)。

最新更新