簡単な電卓を作ってみました.
以下がソースです.
entry .e -relief sunken -textvariable v frame .f -height 120 -width 120 pack .e .f -side top -fill x set i 0 set v 0 set r 0.25 set ini 1 foreach n {7 8 9 * 4 5 6 / 1 2 3 - 0 + = C} { if {[string match {[0-9]*} $n]} { button .f.b$n -text "$n" -command "num $n" } elseif {$n == "="} { button .f.b= -text "=" } elseif {$n == "C"} { button .f.bC -text "C" -command "set v 0;set ini 1" } else { button .f.b$n -text "$n" -command ".e insert end $n;set ini 0" } place .f.b$n -relx [expr ($i%4)*$r] -rely [expr ($i/4)*$r] -relw $r -relh $r incr i } bind .f.b= <1> { set v [expr $v];set ini 1} proc num n { global ini v if {$ini} { set v $n } else { set v $v$n } set ini 0 } proc tkerror err { global v set v 0 tk_dialog .err "calc" $err warning 0 OK } |
これじゃ,Tcl/Tk そのままだな.
現に上のソースを wish に渡すと動いてしまいます。