1

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

4

2 回答 2

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]
    }
}
于 2013-08-09T16:48:23.073 回答
0

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

于 2013-08-09T16:20:35.557 回答