1

私は 5 つのラジオ ボタンを使用しています。これを呼び出すと、各ボタンに固有の新しいウィジェットが作成されます。ただし、一度ウィジェットを作成すると、同じパス名で同じウィジェットを作成することはできません。または、エラーが表示されます。ラジオ ボタンを複数回クリックすると、前述のエラーが発生します。同じラジオボタンを2回続けて押すことを制限するか、ウィンドウが再作成されないようにする方法はありますか?

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 に答える