X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/07b2e1cd389c16c05d74adedf92fda3ca785f2bd..71aba8333cc915afff9e740c944f7fa7247abacb:/wxPython/demo/Threads.py diff --git a/wxPython/demo/Threads.py b/wxPython/demo/Threads.py index b1dce085a6..05883731b9 100644 --- a/wxPython/demo/Threads.py +++ b/wxPython/demo/Threads.py @@ -7,7 +7,7 @@ from whrandom import random #---------------------------------------------------------------------- -wxEVT_UPDATE_BARGRAPH = 25015 +wxEVT_UPDATE_BARGRAPH = wxNewEventType() def EVT_UPDATE_BARGRAPH(win, func): win.Connect(-1, -1, wxEVT_UPDATE_BARGRAPH, func) @@ -30,11 +30,11 @@ class CalcBarThread: self.val = val def Start(self): - self.keepGoing = self.running = true + self.keepGoing = self.running = True thread.start_new_thread(self.Run, ()) def Stop(self): - self.keepGoing = false + self.keepGoing = False def IsRunning(self): return self.running @@ -43,11 +43,10 @@ class CalcBarThread: while self.keepGoing: evt = UpdateBarEvent(self.barNum, int(self.val)) wxPostEvent(self.win, evt) - del evt + #del evt sleeptime = (random() * 2) + 0.5 - #print self.barNum, 'sleeping for', sleeptime - time.sleep(sleeptime) + time.sleep(sleeptime/4) sleeptime = sleeptime * 5 if int(random() * 2): @@ -58,7 +57,7 @@ class CalcBarThread: if self.val < 0: self.val = 0 if self.val > 300: self.val = 300 - self.running = false + self.running = False #---------------------------------------------------------------------- @@ -160,26 +159,22 @@ class TestFrame(wxFrame): panel.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD)) wxStaticText(panel, -1, "This demo shows multiple threads interacting with this\n" - "window by sending events to it.", wxPoint(5,5)) + "window by sending events to it, one thread for each bar.", + wxPoint(5,5)) panel.Fit() self.graph = GraphWindow(self, ['Zero', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven']) - self.graph.SetSize((-1, self.graph.GetBestHeight())) + self.graph.SetSize((450, self.graph.GetBestHeight())) sizer = wxBoxSizer(wxVERTICAL) sizer.Add(panel, 0, wxEXPAND) sizer.Add(self.graph, 1, wxEXPAND) self.SetSizer(sizer) - self.SetAutoLayout(true) + self.SetAutoLayout(True) sizer.Fit(self) - #self.graph.SetValue(0, 25) - #self.graph.SetValue(1, 50) - #self.graph.SetValue(2, 75) - #self.graph.SetValue(3, 100) - EVT_UPDATE_BARGRAPH(self, self.OnUpdate) self.threads = [] self.threads.append(CalcBarThread(self, 0, 50)) @@ -199,11 +194,12 @@ class TestFrame(wxFrame): def OnUpdate(self, evt): self.graph.SetValue(evt.barNum, evt.value) - self.graph.Refresh(false) + self.graph.Refresh(False) def OnCloseWindow(self, evt): busy = wxBusyInfo("One moment please, waiting for threads to die...") + wxYield() for t in self.threads: t.Stop() running = 1 @@ -221,7 +217,7 @@ class TestFrame(wxFrame): def runTest(frame, nb, log): win = TestFrame(frame, log) frame.otherWin = win - win.Show(true) + win.Show(True) return None #---------------------------------------------------------------------- @@ -248,3 +244,11 @@ ProcessEvent does, it processes it later from the context of the GUI thread. """ + + + +if __name__ == '__main__': + import sys,os + import run + run.main(['', os.path.basename(sys.argv[0])]) +