Martin Hvidberg wrote: > I have a Python program, which has until now, been running in command line > mode only. I wish to add a GUI. > > I would like to develop (and maintain) the GUI part in a separate module, > i.e. in its own .py file, and then import that into the old main > program. > > I jumped into wxPython, as it seems to be the right GUI for me, and > downloaded some examples that I took apart and joined. Now the basic GUI > is running, though neither beautiful nor complete. > > The main task for my GUI is to allow the user to point to an input file. > It can now obtain a filename from a file selection dialog, but I cant > figure out how to get the filename, i.e. the string variable containing > the file name, send back to the main program > > I attach the two .py files hereunder. > > My question is: > How do I get the information from variable strSequenceFile, back to the > main module in file jacxl.py ?
AFAIK, typically, you don't -- the way it is here. Returning a value from a Button handler, or any event handler generally, won't have any effect. The event handlers are called from deep in wx code by routines that don't deal with anything specific to the data-processing side of the program. What I think you might do is to make strSequenceFile an attribute of your Frame, so that OnFindFile button does ``self.strSequenceFile = dialog.GetPath()'' rather than returning that value. Then your main level can do ``jacXlgui.app.GetTopWindow().strSequenceFile'' . There are probably refinements to be added to this, but I think it's a good beginning strategy. The first new place I would take the whole program would be to remove the command-line controls from the command line program, so you're left with a sort of "business model" that contains only the data processing. Then you can write a new GUI program based on jacXlgui that imports the data processing module and calls computations and reports results from the model. Mel. -- http://mail.python.org/mailman/listinfo/python-list