From: Alex T. <al...@tw...> - 2006-07-23 22:20:57
|
hwphillips wrote: >I have written a program which involves a long process of copying >files/converting files. I would like for the user to be able to stop the >process. I put a "stop" menu item, but the program doesn't respond. The >window titlebar goes white and nothing happens till the >copying/converting process is over. Any assistance would be appreciated. > > So long as your processing loop is running, there is no opportunity for the wxPython events to be processed and passed to your menu code. Easiest, simplest, way to handle this is to ensure that your processing loop has something like for file in theListOfFiles: if globalStop: break processOneFile() wx.SafeYield(self) This checks a global variable (which you would set to true when the "stop" button (or menu) was clicked), then processes one file, then yields control (which allows wx to process any events). There are a number of examples that do this in the PythonCard sample - see for instance gravity.py (or findfiles for "yield" in the samples directory). -- Alex Tweedly http://www.tweedly.net -- No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.1.394 / Virus Database: 268.10.3/395 - Release Date: 21/07/2006 |