Tests to show problem with wxExecute when using redirection on a GUI app.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9806 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2001-04-20 00:38:16 +00:00
parent 8ab7390901
commit 84d31cc23f
2 changed files with 117 additions and 0 deletions

36
wxPython/tests/runner.py Normal file
View File

@ -0,0 +1,36 @@
from wxPython.wx import *
import sys, time
class WaitingProcess(wxProcess):
def __init__(self):
wxProcess.__init__(self, None)
self.terminated = false
def OnTerminate(self, pid, status):
print pid, status
self.terminated = true
def wait(self):
while not self.terminated:
stream = self.GetInputStream()
if not stream.eof():
sys.stdout.write(stream.read())
stream = self.GetErrorStream()
if not stream.eof():
sys.stderr.write(stream.read())
wxYield()
try:
#raw_input("ready...")
if 1:
process = WaitingProcess()
process.Redirect()
pid = wxExecute('python -u wxFrame1.py', false, process)
process.wait()
else:
wxExecute('python -u wxFrame1.py')
finally:
#raw_input("done...")
pass

View File

@ -0,0 +1,81 @@
#Boa:Frame:wxFrame1
from wxPython.wx import *
import sys
def create(parent):
return wxFrame1(parent)
frame_count = 0
[wxID_WXFRAME1BUTTON1, wxID_WXFRAME1] = map(lambda _init_ctrls: wxNewId(), range(2))
class wxFrame1(wxFrame):
def _init_utils(self):
pass
def _init_ctrls(self, prnt):
wxFrame.__init__(self, size = wxSize(960, 662), id = wxID_WXFRAME1, title = 'wxFrame1', parent = prnt, name = '', style = wxDEFAULT_FRAME_STYLE, pos = (-1, -1))
self._init_utils()
self.button1 = wxButton(label = 'button1', id = wxID_WXFRAME1BUTTON1, parent = self, name = 'button1', size = wxSize(75, 23), style = 0, pos = wxPoint(216, 152))
EVT_BUTTON(self.button1, wxID_WXFRAME1BUTTON1, self.OnButton1Button)
def __init__(self, parent):
self._init_ctrls(parent)
global frame_count
frame_count += 1
self.SetTitle('Frame %d' % frame_count)
print 'Frame %d' % frame_count
self.shown = 0
EVT_IDLE(self, self.OnIdle)
def OnButton1Button(self, event):
print 'Closing %s' % self.GetTitle()
self.Close()
def OnIdle(self, evt):
if not self.shown:
#print self.GetTitle(), "shown"
#print self.Show(false), self.Show(true)
#import win32gui, win32con
#win32gui.ShowWindow(self.GetHandle(), win32con.SW_SHOW)
self.shown = 1
class BoaApp(wxApp):
def OnInit(self):
frame1 = create(None)
## import win32gui, win32con
## win32gui.ShowWindow(frame1.GetHandle(), win32con.SW_SHOW)
## frame1.Show(true)
frame1.Show(true)
frame1.Show(false)
frame1.Show(true)
frame2 = create(None)
print frame2.Show(true)
return true
def main():
application = BoaApp(0)
application.MainLoop()
if __name__ == '__main__':
main()
##if __name__ == '__main__':
## app = wxPySimpleApp()
##
## frame1 = create(None)
## frame1.Show(true)
##
## frame2 = create(None)
## frame2.Show(true)
##
## app.MainLoop()
##