|   |  |   | 
|   |   |   |   |   |  
|  | Menu |  |  
  |  | 
Eigenschaften |  |  
    |  | 
Bemerkung:Das Menü besteht wie in Java aus einem MenuBar, hier aber Menu benannt.
 Die Menüs werden über das Widget “Menu” dargestellt.
 Die Menüeinträge warden über “add_command” realisiert.Eingetragen warden die Menüeinträge mitttels des Befehls “add_cascade”.
 
 Erzeugen:
 im Konstruktor:
 self.menuBar = tkinter.Menu(self)
 
 in setGUI:
 self.menuFile = tkinter.Menu(self.menuBar, tearoff=False)
 self.menuFile.add_command(label="Öffnen", command=self.openFile)
 self.menuFile.add_separator()
 self.menuFile.add_command(label="Beenden", command=self.quit)
 self.menuBar.add_cascade(label="Datei", menu=self.menuFile) # Name des HauptmenüsCheckbutton-Menüs:
 self.chkValue1 = tkinter.IntVar()
 self.menuFont.add_checkbutton(label="Fett", command=self.bold, variable=self.chkValue1)
 Abfrage:
 print("self.chkValue1",self.chkValue1.get())   # 0 oder 1 kann gesetzt werden mit offvalue=0 onvalue=1
 
 Radiobuttons-Menüs:
 self.v = tkinter.StringVar() # "radiogruppe"
 self.menuFont.add_radiobutton(label="Arial", command=self.arial, variable=self.v)
 self.menuFont.add_radiobutton(label="Helvitica", command=self.helvitica, variable=self.v)
 self.menuFont.add_radiobutton(label="Verdana", command=self.verdana, variable=self.v)
 
 Abfrage der Radionbuttonmenüs
 def helvitica(self):
 __print(self.radioValue.get())  # hier Ausgabe Arial/Helvitica/Verdana
 Layout-Manager:
 kein pack oder grid
 
 
 |  |  
  |  | 
 |  |  
    |  | 
 |  |  
  |  | 
Eigenschaften |  |  
    |  | 
            
	                    
                
     
                              | add_command ( options ) | Hinzufügen eines Menüeintrags |  
	                              | add_radiobutton( options ) | Hinzufügen eines Menüeintrags mit Radiobutton |  
                              | add_checkbutton( options ) | Hinzufügen eines Menüeintrags mit check button |  
	                              | add_cascade( options ) | Einfügen eines Hauptmenüs oder Submenüs. |  
                              | add_separator() | Einfügen eines Separators |  
	                              | add( type, options ) | Hinzufügen von Typen von Menüs. |  
                              | delete( startindex [, endindex ]) | Löschen von Menüeinträge |  
	                              | entryconfig( index, options ) | Möglichkeit zur Modifizierung. |  
                              | index(item) | Ausgabe des Index eines Menüeintrags. |  
	                              | insert_separator ( index ) | Einfügen eines Separator |  
                              | invoke ( index ) | Aufruf der Event-Methode. Setzt die Checkbox oder Radiobutton. |  
	                              | type ( index ) | Rückgabe des Types: "cascade""checkbutton"
 "command"
 "radiobutton"
 "separator"
 "tearoff".
 |  
 
 |  |  
  |  | 
 |  |  
    |  | 
 |  |  
  |  | 
1. Beispiel |  |  
    |  | 
import tkinter
class MyApp(tkinter.Frame):
	def __init__(self, master=None):
		tkinter.Frame.__init__(self, master)
		self.menuBar = tkinter.Menu(self)
		master.config(menu=self.menuBar)
		self.setGUI()
		self.pack()
	def setGUI(self):
		self.menuFile = tkinter.Menu(self.menuBar, tearoff=False)
		self.menuFile.add_command(label="Öffnen", command=self.openFile)
		self.menuFile.add_command(label="Speichern", command=self.saveFile)
		self.menuFile.add_command(label="Speichern unter", command=self.saveasFile)
		self.menuFile.add_separator() 
		self.menuFile.add_command(label="Beenden", command=self.quit)
		self.menuBar.add_cascade(label="Datei", menu=self.menuFile)
		self.menuEdit = tkinter.Menu(self.menuBar, tearoff=False)
		self.menuEdit.add_command(label="Einfügen", command=self.openFile)
		self.menuEdit.add_command(label="Kopieren", command=self.saveFile)
		self.menuBar.add_cascade(label="Edit", menu=self.menuEdit)
		self.editor = tkinter.Text(self)
		self.editor.pack(padx="5",pady="5")
        
	def openFile(self):
		self.editor.insert("end","openFile\r\n")
	def saveFile(self):
		self.editor.insert("end","saveFile\r\n")
	def saveasFile(self):
		self.editor.insert("end","saveasFile\r\n")
root = tkinter.Tk()
root.title("Mein Fenster")
root.geometry("250x300")
app = MyApp(root)
app.mainloop()
 |  |  
  |  | 
 |  |  
    |  |   
Menüs mit Tkinter  
 |  |  
  |  | 
 |  |  
    |  | 
 |  |  
  |  | 
2. Beispiel |  |  
    |  | 
import tkinter
class MyApp(tkinter.Frame):
	def __init__(self, master=None):
		tkinter.Frame.__init__(self, master)
		self.menuBar = tkinter.Menu(self)
		master.config(menu=self.menuBar)
		self.setGUI()
		self.pack()
	def setGUI(self):
		self.menuFile = tkinter.Menu(self.menuBar, tearoff=False)
		self.menuFile.add_command(label="Öffnen", command=self.openFile)
		self.menuFile.add_command(label="Speichern", command=self.saveFile)
		self.menuFile.add_command(label="Speichern unter", command=self.saveasFile)
		self.menuFile.add_separator() 
		self.menuSubFile = tkinter.Menu(self.menuBar, tearoff=False)
		self.menuSubFile.add_command(label="Sub1")
		self.menuSubFile.add_command(label="Sub2")
		self.menuSubFile.add_command(label="Sub3")
		self.menuFile.add_cascade(label="Sub1-3", menu=self.menuSubFile)
		self.menuFile.add_separator() 
		self.menuFile.add_command(label="Beenden", command=self.quit)
		self.menuBar.add_cascade(label="Datei", menu=self.menuFile)
		self.menuEdit = tkinter.Menu(self.menuBar, tearoff=False)
		self.menuEdit.add_command(label="Einfügen", command=self.insertClipboard)
		self.menuEdit.add_command(label="Kopieren", command=self.copyClipboard)
		self.menuBar.add_cascade(label="Edit", menu=self.menuEdit)
		self.editor = tkinter.Text(self)
		self.editor.pack(padx="5",pady="5")
        
	def openFile(self):
		self.editor.insert("end","openFile\r\n")
	def saveFile(self):
		self.editor.insert("end","saveFile\r\n")
	def saveasFile(self):
		self.editor.insert("end","saveasFile\r\n")
	def insertClipboard(self):
		self.editor.insert("end","insertClipboard\r\n")
	def copyClipboard(self):
		self.editor.insert("end","copyClipboard\r\n")
root = tkinter.Tk()
root.title("Mein Fenster")
root.geometry("250x300")
app = MyApp(root)
app.mainloop()
 |  |  
  |  | 
 |  |  
    |  |   
2. Menübeispiel mit Untermenüs  
 |  |  
  |  | 
 |  |  
    |  | 
 |  |  
  |  | 
3. Beispiel |  |  
    |  | 
import tkinter
class MyApp(tkinter.Frame):
	def __init__(self, master=None):
		tkinter.Frame.__init__(self, master)
		self.menuBar = tkinter.Menu(self)
		master.config(menu=self.menuBar)
		self.setGUI()
		self.pack()  # muss immer sein
	def setGUI(self):
		self.menuFile = tkinter.Menu(self.menuBar, tearoff=False)
		self.menuFile.add_command(label="Öffnen", command=self.openFile)
		self.menuFile.add_command(label="Speichern", command=self.saveFile)
		self.menuFile.add_command(label="Speichern unter", command=self.saveasFile)
		self.menuFile.add_separator() 
		self.menuSubFile = tkinter.Menu(self.menuBar, tearoff=False)
		self.menuSubFile.add_command(label="Sub1")
		self.menuSubFile.add_command(label="Sub2")
		self.menuSubFile.add_command(label="Sub3")
		self.menuFile.add_cascade(label="Sub1-3", menu=self.menuSubFile)
		self.menuFile.add_separator() 
		self.menuFile.add_command(label="Beenden", command=self.quit)
		self.menuBar.add_cascade(label="Datei", menu=self.menuFile)
		self.menuEdit = tkinter.Menu(self.menuBar, tearoff=False)
		self.menuEdit.add_command(label="Einfügen", command=self.insertClipboard)
		self.menuEdit.add_command(label="Kopieren", command=self.copyClipboard)
		self.menuBar.add_cascade(label="Edit", menu=self.menuEdit)
		self.menuFont = tkinter.Menu(self.menuBar, tearoff=False)
		self.menuFont.add_checkbutton(label="Fett", command=self.bold)
		self.menuFont.add_checkbutton(label="Kursiv", command=self.italic)
		self.menuFont.add_separator() 
		self.v = tkinter.IntVar()
		self.menuFont.add_radiobutton(label="Arial", command=self.arial, variable=self.v)
		self.menuFont.add_radiobutton(label="Helvitica", command=self.helvitica, variable=self.v)
		self.menuFont.add_radiobutton(label="Verdana", command=self.verdana, variable=self.v)
		self.menuBar.add_cascade(label="Schrift", menu=self.menuFont)
		# self.menuBar.grid(row=0, column=0)
		self.bnAction = tkinter.Button(self)
		self.bnAction["text"] = "Action"
		self.bnAction["command"] = self.onAction
		self.bnAction.pack(side="right")
		self.bnAction.grid(row=0, column=0, padx="10",pady="10", sticky="w")
		self.editor = tkinter.Text(self)
		# self.editor.pack(padx="5",pady="5")
		self.editor.grid(row=1, column=0, padx="5",pady="5")
        
	def openFile(self):
		self.editor.insert("end","openFile\r\n")
	def saveFile(self):
		self.editor.insert("end","saveFile\r\n")
	def saveasFile(self):
		self.editor.insert("end","saveasFile\r\n")
	def insertClipboard(self):
		self.editor.insert("end","insertClipboard\r\n")
	def copyClipboard(self):
		self.editor.insert("end","copyClipboard\r\n")
	def bold(self):
		self.editor.insert("end","bold\r\n")
	def italic(self):
		self.editor.insert("end","italic\r\n")
	def arial(self):
		self.editor.insert("end","arial\r\n")
	def helvitica(self):
		self.editor.insert("end","helvitica\r\n")
	def verdana(self):
		self.editor.insert("end","verdana\r\n")
	def onAction(self):
		self.editor.insert("end","\r\nonAction\r\n")
		# mnItem = self.menuFont.index(4)
		# self.editor.insert("end",mnItem+ "\r\n")
		print(self.v)
root = tkinter.Tk()
root.title("Mein Fenster")
root.geometry("250x300")
app = MyApp(root)
app.mainloop()
 |  |  
  |  | 
 |  |  
    |  |   
Menüs mit Checkbutton und Radiobutton  
 |  |  
  |  | Listbox
 Radiobutton
 
 |  |  
|   |  |   |