Liite 3. Autolaskuri-esimerkki Tcl/Tk-kielillä.
#####################################################
# Autolaskuri 1. versio.
#
# Autolaskuri -esimerkki tehty Tcl/Tk -kielillä
# Eeva-Kaisa Rouhiainen, tehty 7.7.1998
# Autolaskurin kuva löytyy luvusta 5 (kuva 5.3).
#####################################################
#!/usr/bin/wish
set henkilo_autot 0
set kuorma_autot 0
# wm, ikkunan hallintaan liittyvät komennot
wm title . "Autolaskuri"
# Frame, kehykset
frame .laskurit
frame .laskurit.kuorma
frame .laskurit.henkilo
frame .menubar -relief raised -bd 2
# Label, etiketit
label .otsikko -text "AUTOLASKURI" -bg white
label .laskurit.henkilo.henkiloentry -width 5 -relief sunken -bd 1 -textvariable henkilo_autot
label .laskurit.kuorma.kuormaentry -width 5 -relief sunken -bd 1 -textvariable kuorma_autot
# Menu,valikoiden teko
menubutton .menubar.file -text "File" -underline 0 -menu .menubar.file.menu
menu .menubar.file.menu
.menubar.file.menu add command -label "Exit" -underline 0 -accelerator "Alt+e" -command exit
# Button, painikkeiden teko
button .laskurit.henkilo.henkilobutton -text "Henkilöautoja" -command {incr henkilo_autot}
button .laskurit.kuorma.kuormabutton -text "Kuorma-autoja" -command {incr kuorma_autot}
button .nollaa -text "Nollaa" -command {set henkilo_autot 0;set kuorma_autot 0}
# Pack, käyttöliittymän pakkaaminen
pack .menubar -side top -fill x
pack .menubar.file -side left
pack .laskurit.henkilo.henkilobutton .laskurit.henkilo.henkiloentry -side top -fill x
pack .laskurit.kuorma.kuormabutton .laskurit.kuorma.kuormaentry -side top -fill x
pack .laskurit.henkilo .laskurit.kuorma -side left
pack .laskurit.henkilo -padx 1m
pack .laskurit.kuorma -padx 1m
pack .otsikko .laskurit .nollaa -side top
pack .nollaa -pady 2m
pack .otsikko -fill x -ipady 3m
# Bind, sidosten luominen
# Näppäinyhdistelmällä <Alt-e> poistutaan ohjelmasta.
# Näppäimen h avulla lisätään henkilöautojen lukumäärää.
# Näppäimen k avulla lisätään kuorma-autojen lukumäärää.
# Näppäimen n avulla nollataan autojen lukumäärät.
bind all <Alt-e> {exit}
bind all <KeyPress-h> { incr henkilo_autot }
bind all <KeyPress-k> { incr kuorma_autot }
bind all <KeyPress-n> { set henkilo_autot 0; set kuorma_autot 0;}