[wxPython-users] calling wxPython functions from different thread

jonhattan jonhattan at faita.net
Mon Feb 11 13:47:25 PST 2008


Jacek Poplawski escribió:
> hello again,
> 
> I was trying to make my application multithreaded, I put my calculations
> in different Thread, then I gave this Thread name of the function to
> call when it finish.
> This function updates ListCtrl.
> So it works this way:
> 
> - ListCtrl has old values
> - I want to add new element, it requires calculations
> - I call different thread and give it reference to Update() function
> - I do different things while thread does its calculations
> - thread finishes calculations and calls Update()
> - Update() regenerates data in ListCtrl
> 
> The problem is, that my GUI is unstable after last step. ListCtrl is not
> updated until I use scroll, then it updates, but I can't click anything
> else in the wxPython window.

you can tell the mainloop to schedule a call from a non-thread via
wx.CallAfter:

wx.CallAfter(the_list.Update, arg1, arg2)


> 
> Can I use threads this way when developing wxPython application?
> 
> If not, how can I update ListCtrl when another Thread finish its job?
> 
> -- 
> Free Software - find interesting programs and change them
> NetHack - meet interesting creatures, kill them and eat their bodies
> Usenet - meet interesting people from all over the world and flame them
> Decopter - unrealistic helicopter simulator, get it from
> http://decopter.sf.net





More information about the wxpython-users mailing list