Tk中checkbutton和button的联动
问题
@流吾思:
我想写个checkbutton和button组合的按键,当checkbutton被选中后,button才起作用,这个应该怎么写?
解答
proc link_button {check button} {
set checked_value [uplevel #0 set [$check cget -variable]]
set state_map {0 disabled 1 normal}
set button_state [dict get $state_map $checked_value ]
$button configure -state $button_state
}
pack [checkbutton .check -text "Check Me"]
pack [button .button -text "Click Me"]
.check configure -command "link_button .check .button"
.check select
.check invoke
代码说明:
- 获取
checkbutton
绑定的变量 - 获取该变量的值。需要借助
uplevel
在全局域中进行 - 根据该变量的值设置
button
的状态