Калькулятор на Tcl/Tk

СВК
Published

В статье на хабре про построение GUI было предложено реализовать калькулятор. И вот моя реализация на tcl/tk

tcltkcalc.png

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