Michael it does (help) - thank you cheers
Michael Lange wrote: > > Hi, > > On Sat, 12 Sep 2009 18:34:09 -0700 (PDT) > thicket <mark_eastw...@ntlworld.com> wrote: > > (...) >> >> #!/usr/bin/env python >> from Tkinter import * >> >> class MyMenu(Menu): >> def __init__(self,parent): >> Menu.__init__(self,parent, tearoff=0) >> self.label1="Mylabel" >> self.label2="Myexit" >> >> def my_add(self): >> self.add_command(label=self.label1, >> command=root.quit) >> # did not expect this to work >> Menu.add_command(self,label=self.label2, >> command=root.quit) >> # this I thought may work >> >> root = Tk() >> menubar = Menu(root) >> menu=MyMenu(menubar) >> menu.my_add() >> menubar.add_cascade(label="Test", menu=menu) >> >> root.config(menu=menubar) >> mainloop() >> >> What I would like to do is not hardcode the 'tearoff=0' in the parent >> class constructor i.e. instantiate MyMenu by >> menu=MyMenu(menubar, tearoff=0) > > You can achieve this by changing the MyMenu constructor so it will > accept keyword arguments and pass them to the Menu class. > > class MyMenu(Menu): > def __init__(self,parent, **kw): > Menu.__init__(self,parent, **kw) > >> >> Also not 100% sure why both add_command() statements in my_add() work? > > In your example "root" is defined globally. It would not work if you > put root = Tk() and the following lines inside a function definition > and then the script calls this function. > If you want it to be more obvious you can keep a reference to the > parent inside the MyMenu class, so the constrctor may look like: > > class MyMenu(Menu): > def __init__(self,parent, **kw): > Menu.__init__(self,parent, **kw) > self.parent = parent > > However, as long as you need only the quit() method from "root", you > can use self.quit() as well, because any Tkinter widget has a quit() > method. > > HTH > > Michael > _______________________________________________ > Tkinter-discuss mailing list > Tkinter-discuss@python.org > http://mail.python.org/mailman/listinfo/tkinter-discuss > > -- View this message in context: http://www.nabble.com/Help-on-subclassing---Tkinter.Menu-tp25419747p25422810.html Sent from the Python - tkinter-discuss mailing list archive at Nabble.com. _______________________________________________ Tkinter-discuss mailing list Tkinter-discuss@python.org http://mail.python.org/mailman/listinfo/tkinter-discuss