Class menu in Tkinter Gui
11,024
Yes, it's possible:
import tkinter as tk
# import Tkinter as tk # if using python 2
import sys
class MenuBar(tk.Menu):
def __init__(self, parent):
tk.Menu.__init__(self, parent)
fileMenu = tk.Menu(self, tearoff=False)
self.add_cascade(label="File",underline=0, menu=fileMenu)
fileMenu.add_command(label="Exit", underline=1, command=self.quit)
def quit(self):
sys.exit(0)
class App(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
menubar = MenuBar(self)
self.config(menu=menubar)
if __name__ == "__main__":
app=App()
app.mainloop()
Author by
Bruno
Updated on June 04, 2022Comments
-
Bruno almost 2 years
I'm working on a Gui and I'd like to know if it is possible to make the menu property of a window a separate class on my script for a clearer and more enhancement prone code.
my code currently is :
class Application(Frame): """ main window application """ def __init__(self, boss = None): (...) self.menu = Menu(self) self.master.config(menu = self.menu) self.select = Menu(self.menu) self.menu.add_cascade(label = 'Select', menu = self.select) self.select.add_command(label = 'Select all', command = self.select_all) ...
And I would prefer something like :
class MenuBar: # all the content of the menu here class Application(Frame): (...) self.menu = MenuBar(self) ?
rgds,