problems getting os.system and wxmenu to read options from a file and then execute

MRAB python at mrabarnett.plus.com
Sun Jun 27 19:56:04 EDT 2010


Eric_Dexter at msn.com wrote:
> I managed to get the program running and the menu options are
> appearing on the list but the programs are not running.  I suspect it
> is my onexecutemethod
> 
[snip]

>         #add execute files from the text file list
>         idtool = 400
>         for e in menuoptions:
>             wx.EVT_MENU(self, idtool, self.OnExecute(idtool, e))

This calls the OnExecute method and then passes its result to
wx.EVT_MENU. If, for example, OnExecute is returning None, then that's
what is being passed into wx.EVT_MENU.

What you should actually be doing is passing a function which can be
called when the menu item is clicked, something like this:

             wx.EVT_MENU(self, idtool, lambda idtool=idtool, e=e: 
self.OnExecute(idtool, e))

>             idtool += 1
>             ##print e
> 
[snip]
>     def OnExecute(self,tool,e):
>         print tool
>         os.system(e)
>         #print tool
>         # Get rid of the dialog to keep things tidy
> 
[snip]




More information about the Python-list mailing list