Tcl/tk 我怎么知道什么时候选择了哪个单选按钮?
Tcl/tk How can i know when and which radiobutton is selected?
我一直在为看似微不足道的事情而苦苦挣扎=(
我需要知道选择了哪个单选按钮,以便我可以启用和禁用我的条目。
radiobutton .t.r1 -text "Default" -variable reptype -value 0
radiobutton .t.r2 -text "Custom" -variable reptype -value 1
.t.r1 select
place .t.r1 -x 20 -y 30
place .t.r2 -x 20 -y 50
entry .t.ecustom -width 70
place .t.ecustom -x 100 -y 50
if { $reptype == 0 } {
.t.ecustom configure -state normal
} elseif { $reptype == 1 } {
.t.ecustom configure -state disabled
}
这就是我正在尝试的,在这里和那里更改一些位,但结果永远不是我想要的,在这个例子中 reptype 变量无法识别。
您可以对变量使用跟踪,或使用 -command
回调。在你的情况下,我建议使用 -command
回调。
set ::reptype 0
radiobutton .t.r1 -text "Default" -variable reptype -value 0 -command entrystate
radiobutton .t.r2 -text "Custom" -variable reptype -value 1 -command entrystate
entry .t.ecustom -state disabled
grid .t.r1
grid .t.r2 .t.ecustom
grid columnconfigure .t 1 -weight 1
proc entrystate {} {
if {$::reptype} {
.t.ecustom configure -state normal
} else {
.t.ecustom configure -state disabled
}
}
我一直在为看似微不足道的事情而苦苦挣扎=(
我需要知道选择了哪个单选按钮,以便我可以启用和禁用我的条目。
radiobutton .t.r1 -text "Default" -variable reptype -value 0
radiobutton .t.r2 -text "Custom" -variable reptype -value 1
.t.r1 select
place .t.r1 -x 20 -y 30
place .t.r2 -x 20 -y 50
entry .t.ecustom -width 70
place .t.ecustom -x 100 -y 50
if { $reptype == 0 } {
.t.ecustom configure -state normal
} elseif { $reptype == 1 } {
.t.ecustom configure -state disabled
}
这就是我正在尝试的,在这里和那里更改一些位,但结果永远不是我想要的,在这个例子中 reptype 变量无法识别。
您可以对变量使用跟踪,或使用 -command
回调。在你的情况下,我建议使用 -command
回调。
set ::reptype 0
radiobutton .t.r1 -text "Default" -variable reptype -value 0 -command entrystate
radiobutton .t.r2 -text "Custom" -variable reptype -value 1 -command entrystate
entry .t.ecustom -state disabled
grid .t.r1
grid .t.r2 .t.ecustom
grid columnconfigure .t 1 -weight 1
proc entrystate {} {
if {$::reptype} {
.t.ecustom configure -state normal
} else {
.t.ecustom configure -state disabled
}
}