本当に単純な Tcl/Tk プログラムを作成して学習するだけですが、少し問題があります。
クリックするとボタンの色が切り替わるようにする必要があるため、最初は赤になり、クリックすると緑になり、もう一度クリックすると赤に戻ります。
赤から緑に変わりましたが、逆に戻す方法がわかりません。これを行う最善の方法は何ですか?
それほど難しいことではありません (この種のことがプラットフォームの UI ガイドラインに直接違反している OSX を除いて)、適切なコールバックを使用する必要があります。
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)}]
}
切り替えが必要な場合は、代わりにa を使用することを検討してくださいcheckbutton
。これは、ユーザーがはるかに迅速に理解できるようにするためです。