projects
/
wxWidgets.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
more compilation fixes
[wxWidgets.git]
/
wxPython
/
demo
/
Threads.py
diff --git
a/wxPython/demo/Threads.py
b/wxPython/demo/Threads.py
index 19b759aecec5edd8021c824363416a06c8339732..05883731b9d21a5690c06357ee7eb5df6a33e0af 100644
(file)
--- 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)
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.val = val
def Start(self):
- self.keepGoing = self.running =
t
rue
+ self.keepGoing = self.running =
T
rue
thread.start_new_thread(self.Run, ())
def Stop(self):
thread.start_new_thread(self.Run, ())
def Stop(self):
- self.keepGoing =
f
alse
+ self.keepGoing =
F
alse
def IsRunning(self):
return self.running
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)
while self.keepGoing:
evt = UpdateBarEvent(self.barNum, int(self.val))
wxPostEvent(self.win, evt)
- del evt
+
#
del evt
sleeptime = (random() * 2) + 0.5
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):
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
if self.val < 0: self.val = 0
if self.val > 300: self.val = 300
- self.running =
f
alse
+ self.running =
F
alse
#----------------------------------------------------------------------
#----------------------------------------------------------------------
@@
-71,11
+70,11
@@
class GraphWindow(wxWindow):
for label in labels:
self.values.append((label, 0))
for label in labels:
self.values.append((label, 0))
-
self.
font = wxFont(12, wxSWISS, wxNORMAL, wxBOLD)
- self.SetFont(
self.
font)
+ font = wxFont(12, wxSWISS, wxNORMAL, wxBOLD)
+ self.SetFont(font)
self.colors = [ wxRED, wxGREEN, wxBLUE, wxCYAN,
self.colors = [ wxRED, wxGREEN, wxBLUE, wxCYAN,
-
wxNamedColour("Yellow"), wxNamedColor("Navy")
]
+
"Yellow", "Navy"
]
EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)
EVT_PAINT(self, self.OnPaint)
EVT_ERASE_BACKGROUND(self, self.OnEraseBackground)
EVT_PAINT(self, self.OnPaint)
@@
-98,8
+97,12
@@
class GraphWindow(wxWindow):
self.barHeight = hmax
self.barHeight = hmax
+ def GetBestHeight(self):
+ return 2 * (self.barHeight + 1) * len(self.values)
+
+
def Draw(self, dc, size):
def Draw(self, dc, size):
- dc.SetFont(self.
font
)
+ dc.SetFont(self.
GetFont()
)
dc.SetTextForeground(wxBLUE)
dc.SetBackground(wxBrush(self.GetBackgroundColour()))
dc.Clear()
dc.SetTextForeground(wxBLUE)
dc.SetBackground(wxBrush(self.GetBackgroundColour()))
dc.Clear()
@@
-156,23
+159,21
@@
class TestFrame(wxFrame):
panel.SetFont(wxFont(10, wxSWISS, wxNORMAL, wxBOLD))
wxStaticText(panel, -1,
"This demo shows multiple threads interacting with this\n"
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'])
panel.Fit()
self.graph = GraphWindow(self, ['Zero', 'One', 'Two', 'Three', 'Four',
'Five', 'Six', 'Seven'])
+ self.graph.SetSize((450, self.graph.GetBestHeight()))
sizer = wxBoxSizer(wxVERTICAL)
sizer.Add(panel, 0, wxEXPAND)
sizer.Add(self.graph, 1, wxEXPAND)
self.SetSizer(sizer)
sizer = wxBoxSizer(wxVERTICAL)
sizer.Add(panel, 0, wxEXPAND)
sizer.Add(self.graph, 1, wxEXPAND)
self.SetSizer(sizer)
- self.SetAutoLayout(true)
-
- #self.graph.SetValue(0, 25)
- #self.graph.SetValue(1, 50)
- #self.graph.SetValue(2, 75)
- #self.graph.SetValue(3, 100)
+ self.SetAutoLayout(True)
+ sizer.Fit(self)
EVT_UPDATE_BARGRAPH(self, self.OnUpdate)
self.threads = []
EVT_UPDATE_BARGRAPH(self, self.OnUpdate)
self.threads = []
@@
-193,11
+194,12
@@
class TestFrame(wxFrame):
def OnUpdate(self, evt):
self.graph.SetValue(evt.barNum, evt.value)
def OnUpdate(self, evt):
self.graph.SetValue(evt.barNum, evt.value)
- self.graph.Refresh(
f
alse)
+ self.graph.Refresh(
F
alse)
def OnCloseWindow(self, evt):
busy = wxBusyInfo("One moment please, waiting for threads to die...")
def OnCloseWindow(self, evt):
busy = wxBusyInfo("One moment please, waiting for threads to die...")
+ wxYield()
for t in self.threads:
t.Stop()
running = 1
for t in self.threads:
t.Stop()
running = 1
@@
-215,7
+217,7
@@
class TestFrame(wxFrame):
def runTest(frame, nb, log):
win = TestFrame(frame, log)
frame.otherWin = win
def runTest(frame, nb, log):
win = TestFrame(frame, log)
frame.otherWin = win
- win.Show(
t
rue)
+ win.Show(
T
rue)
return None
#----------------------------------------------------------------------
return None
#----------------------------------------------------------------------
@@
-242,3
+244,11
@@
ProcessEvent does, it processes it later from the context of the GUI
thread.
"""
thread.
"""
+
+
+
+if __name__ == '__main__':
+ import sys,os
+ import run
+ run.main(['', os.path.basename(sys.argv[0])])
+