On Dec 9, 11:48 am, r0g <aioe....@technicalbloke.com> wrote: > Wanderer wrote: > > I have a wxPython program which does some calculations and displays > > the results. During these calculations if I click the mouse inside the > > dialog the program locks up. If I leave the dialog alone the process > > completes fine. > > If anything in your GUI app takes a non trivial length of time to > execute you need to run it in either a thread or a separate process. > > http://linuxgazette.net/107/pai.html > > Roger
Thanks Everyone. I'll have to look over these wikis about threading. I decided to go another route and user a timer to perform the loops. That way the events can be processed normally. def DoEfficiency(self, event): ang = self.tc_angle.GetValue() hgt = self.tc_height.GetValue() hgt += 0.1 if hgt > self.eclwidth: hgt = 0 ang +=1 self.tc_angle.SetValue(ang) self.height = hgt self.tc_height.SetValue(hgt) self.tc_height.SetValue(hgt) self.UpdateValues() self.Redraw() self.DrawRays() sPower = self.tc_power.GetValue() Power = sPower.split('%') self.TotalPower +=float(Power[0]) self.Counter +=1 efficiency = self.TotalPower/self.Counter self.tc_eff.SetLabel(str(round(efficiency,1))) if ang > 89: self.efftimer.Stop() self.timer.Start(10) # end DoEfficiency def OnEfficiency(self, event): self.TotalPower = 0 self.Counter = 0 self.tc_angle.SetValue(1) self.tc_height.SetValue(0) self.timer.Stop() self.efftimer.Start(100) # end MyInterface Found another strange bug (Strange to me, anyway). int(0.8 * 10.0) = 7. Had to change the code to int(0.8 * 10.0 + 0.0001). -- http://mail.python.org/mailman/listinfo/python-list