#----------------------------------------------------------------------
-wxEVT_UPDATE_BARGRAPH = 25015
+wxEVT_UPDATE_BARGRAPH = wxNewEventType()
def EVT_UPDATE_BARGRAPH(win, func):
win.Connect(-1, -1, wxEVT_UPDATE_BARGRAPH, func)
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
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):
if self.val < 0: self.val = 0
if self.val > 300: self.val = 300
- self.running = false
+ self.running = False
#----------------------------------------------------------------------
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))
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
def runTest(frame, nb, log):
win = TestFrame(frame, log)
frame.otherWin = win
- win.Show(true)
+ win.Show(True)
return None
#----------------------------------------------------------------------
thread.
"""
+
+
+
+if __name__ == '__main__':
+ import sys,os
+ import run
+ run.main(['', os.path.basename(sys.argv[0])])
+