2

只是制作一个非常简单的 Tcl/Tk 程序来学习,但我遇到了一些麻烦。

我需要在单击时使按钮切换颜色,因此它会以红色开始,单击时将变为绿色,如果再次单击将变回红色。

我已经把它从红色变成了绿色,但我不知道如何让它回到另一个方向。做这个的最好方式是什么?

4

1 回答 1

2

这不是很难(除了在 OSX 上,这种事情直接违反平台 UI 准则)你只需要使用合适的回调:

button .b -background red -command [list toggleTheButton .b]
set state(.b) 1
proc toggleTheButton w {
    global state
    if {$state($w)} {
        $w configure -background green
    } else {
        $w configure -background red
    }
    set state($w) [expr {!$state($w)}]
}

当您需要切换时,请考虑使用 acheckbutton代替,因为用户会更快地理解它。

于 2012-05-08T07:10:40.870 回答