5.3.12. Valikko ja valikkopainike (menu ja menubutton)

Valikko-ohjainta menu käytetään erilaisten valikoiden toteuttamiseen. Yleisin valikko on ikkunan yläreunaan sijoitettava valikko, mutta menu-ohjaimen voi sijoittaa myös muualle ikkunaan. Valikkoon lisätään lisää rivejä add-komennolla. 

menu- ja menubutton-ohjaimien yleisimmin käytetyt optiot ovat

-accelerator

on ohjaimeen kirjoitettava näppäinyhdistelmä, jonka avulla käsky voidaan myös toteuttaa. Accelerator-optio ei määrittele itse komentoa, vaan se on määriteltävä bind-komennon avulla.

-underline

alleviivaa kirjaimen.Alleviivattava kirjain määritellään lukuarvolla. Sanan ensimmäinen kirjain saa arvokseen luvun 0.

Esimerkissä sijoitetaan ikkunan yläpalkkiin valikko, jossa on toiminnot file, edit sekä help (kuva 5.17). 

frame .mbar -relief raised -bd 2

pack .mbar -side top -fill x ;# Valikkopainikkeiden määrittelyt

menubutton .mbar.file -text File -underline 0 -menu .mbar.file.menu

menubutton .mbar.edit -text Edit -underline 0 -menu .mbar.edit.menu

menubutton .mbar.help -text Help -underline 0 -menu .mbar.help.menu ;# Valikoiden file, edit ja help tarkempi määrittely

menu .mbar.file.menu

.mbar.file.menu add command -label "exit" -underline 0 -accelerator "Ctrl+x" -command {exit}

menu .mbar.edit.menu

.mbar.edit.menu add command -label "Undo" -underline 0 -accelerator "Ctrl+u"

.mbar.edit.menu add command -label "Delete" -underline 0 -accelerator "Ctrl+d"

.mbar.edit.menu add command -label "Copy" -underline 0 -accelerator "Ctrl+c"

menu .mbar.help.menu

.mbar.help.menu add command -label "help" -command {puts "apua"}

pack .mbar.file .mbar.edit -side left

pack .mbar.help -side right

focus .mbar ;# määritellään kohdistus valikkoon

Esimerkissä on määritelty myös kirjainyhdistelmät, joiden avulla samat komennot voitaisiin toteuttaa. Nämä määritykset eivät kuitenkaan tee itse komentoja, vaan ne on tehtäv& auml; bind-komennon avulla. focus-komento selitetään luvussa 5.6.2.

Kuva 5.17. Esimerkki valikon ja valikkopainikkeen käytöstä.  


previous gif next gif


Luk-tutkielma: Tcl/Tk -opiksi ja iloksi.