>>menu.add_cascade(label="File", menu=filemenu) >>filemenu.add_command(label="New", command=lambda: callback('New')) >>filemenu.add_command(label="Open...", command=lambda: callback('Open')) >>filemenu.add_separator() >>filemenu.add_command(label="Exit", command=lambda: callback('Exit')) mainloop() >>Of course you could do this with named forwarding functions if you prefer
I'm not sure what 'named forwarding functions' are but I'm actually in a class and when applying your suggestion in the following manner, everything works (THANKS!) **************************** def __Dec(self,p_string): for i in p_string: self.__Insert(i) . . . #menu creation l_dec.add_command(label = 'ATR', command=lambda: self.__Dec('ATR')) l_dec.add_command(label = 'IN', command=lambda:self.__Dec('IN')) . . . **************************** Yet I have a question: If I replace the menu creation code as below, and since __Insert appends the string p_string into a text widget that is created _after_ the menu creation; the method __Dec seems to be called at the menu creation and I get an error in __Insert because the test widget is equal to None. My reflexes of C programmer tell me that command=self.__Dec.... just passes a method pointer (sorry I said it) to add_command - yet it does not seem to be so. What is actually going on ? #menu creation l_dec.add_command(label = 'ATR', command=self.__Dec('ATR')) l_dec.add_command(label = 'IN', command=self.__Dec('IN')) Regards, Philippe -- *************************** Philippe C. Martin SnakeCard LLC www.snakecard.com *************************** -- http://mail.python.org/mailman/listinfo/python-list