Калькулятор на Tcl/Tk
СВКPublished
В статье на хабре про построение GUI было предложено реализовать калькулятор. И вот моя реализация на tcl/tk
wm title . "Tcl/TK calc"
pack [frame .frm] -expand true -fill both
grid columnconfigure .frm 0 -weight 1
grid rowconfigure .frm 0 -weight 1
entry .frm.ent
grid .frm.ent -row 0 -columnspan 5 -sticky nswe -padx 5 -pady 5
proc Calculate {ent txt} {
if [regexp -nocase -all -- {([0-9]+)(\+|\*|\/|-)([0-9]+)} $txt match v1 v2 v3] {
$ent delete 0 end
$ent insert end [expr double($v1) $v2 double($v3)]
}
}
set col 0
set row 1
foreach item {1 2 3 4 5 6 7 8 9 0 + - * /} {
button .frm.btn_$item -text "$item" -command [list .frm.ent insert end $item]
grid .frm.btn_$item -row $row -column $col -sticky nswe -padx 5 -pady 5
incr col
if {[expr fmod($col, 5)] eq "0.0"} {
incr row
set col 0
}
}
button .frm.btn_calc -text "=" -command {
Calculate .frm.ent [.frm.ent get]
}
grid .frm.btn_calc -row 3 -column 4 -sticky nsw -padx 5 -pady 5