Python - Tkinter Menu


Vidžet Menu se koristi za kreiranje različitih tipova menija (gornji nivo, padajući i iskačući) u python aplikaciji. Meniji najvišeg nivoa su oni koji se prikazuju odmah ispod naslovne trake nadređenog prozora. Moramo da kreiramo novu instancu vidžeta Menu i da mu dodamo razne komande koristeći add() metod. Sintaksa za korištenje vidžeta Meni je:

w = Menu(top, options) 

Spisak mogućih opcija je dat u sljedećoj tabeli.

Opcija Opis
activebackground Boja pozadine vidžeta kada je vidžet ispod fokusa.
activeborderwidth Širina border-a widgeta kada je pod mišem. Zadana vrijednost je 1px.
activeforeground Boja fonta vidžeta kada vidžet ima fokus.
bg Boja pozadine widgeta.
bd Širina bordera widgeta.
cursor Pokazivač miša se mijenja u tip kursora kada lebdi preko widgeta. Tip kursora se može postaviti na strelicu ili tačku.
disabledforeground Boja fonta vidžeta kada je onemogućen.
font Tip fonta teksta vidžeta.
fg Boja prednjeg plana widgeta.
postcommand Post komanda se može postaviti na bilo koju funkciju koja se poziva kada miš pređe preko menija.
relief Tip ivice widgeta. Podrazumevani tip je RAISED.
image Koristi se za prikaz slike u meniju.
selectcolor Boja koja se koristi za prikaz dugmeta za potvrdu ili radio dugmeta kada su izabrani.
title Postavite ovu opciju na naslov prozora ako želite promijeniti naslov prozora.


Metode

Vidžet Menu sadrži sljedeće metode.

Metod Opis
add_command(options) Koristi se za dodavanje stavki menija u meni.
add_radiobutton(options) Ovaj metod dodaje radio dugme u meni.
add_checkbutton(options) Ovaj metod se koristi za dodavanje dugmadi za potvrdu u meni.
add_cascade(options) Koristi se za kreiranje hijerarhijskog menija za roditeljski meni povezivanjem datog menija sa roditeljskim menijem.
add_seperator() Koristi se za dodavanje linije za razdvajanje u meni.
add(type, options) Koristi se za dodavanje određene stavke menija u meni.
delete(startindex, endindex) Koristi se za brisanje stavki menija koje postoje u navedenom opsegu.
entryconfig(index, options) Koristi se za konfigurisanje stavke menija identifikovane datim indeksom.
index(item) Koristi se za dobijanje indeksa navedene stavke menija.
insert_seperator(index) Koristi se za umetanje separatora u navedeni indeks.


Kreiranje top-level menija

Meni najvišeg nivoa (top-level menu) se može kreirati instanciranjem vidžeta Menu i dodavanjem stavki menija u meni.

from tkinter import Toplevel, Button, Tk, Menu  
  
# Okvir menija
top = Tk()  

# Kriranje menija
menubar = Menu(top)  
file = Menu(menubar, tearoff=0) 

# Dodavanje elemenata stavku u menija File
file.add_command(label="New")  
file.add_command(label="Open")  
file.add_command(label="Save")  
file.add_command(label="Save as...")  
file.add_command(label="Close")  

# Dodavanje separatora iznad stavke Exit
file.add_separator()  
file.add_command(label="Exit", command=top.quit)  
  
# Dodavanje stavke menija
menubar.add_cascade(label="File", menu=file)  

edit = Menu(menubar, tearoff=0)  
edit.add_command(label="Undo")  
edit.add_separator()  
  
# Dodavanje elemenata stavku u menija Edit
edit.add_command(label="Cut")  
edit.add_command(label="Copy")  
edit.add_command(label="Paste")  
edit.add_command(label="Delete")  
edit.add_command(label="Select All")  
  
# Dodavanje stavke menija Help i dodavanje stavek menija
menubar.add_cascade(label="Edit", menu=edit)  
help = Menu(menubar, tearoff=0)  
help.add_command(label="About")  
menubar.add_cascade(label="Help", menu=help)  
  
# Prikazivanje menija 
top.config(menu=menubar)  
top.mainloop()

Prikaz koda iz gornjeg primjera izgledaće ovako: