test_wx.py
1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
import sys
import wx
# By default the executables created by py2exe write output to stderr
# into a logfile and display a messagebox at program end when there
# has been any output. This logger silently overrides the default
# behaviour by silently swallowing everything.
if hasattr(sys, "frozen"):
class logger:
def write(self, text):
pass # silently ignore everything
sys.stdout = sys.stderr = logger()
class MyFrame(wx.Frame):
def __init__(self, parent, ID, title, pos=wx.DefaultPosition,
size=(200, 200), style=wx.DEFAULT_FRAME_STYLE):
wx.Frame.__init__(self, parent, ID, title, pos, size, style)
panel = wx.Panel(self, -1)
button = wx.Button(panel, 1003, "Close Me")
button.SetPosition(wx.Point(15, 15))
wx.EVT_BUTTON(self, 1003, self.OnCloseMe)
wx.EVT_CLOSE(self, self.OnCloseWindow)
button = wx.Button(panel, 1004, "Press Me")
button.SetPosition(wx.Point(15, 45))
wx.EVT_BUTTON(self, 1004, self.OnPressMe)
def OnCloseMe(self, event):
self.Close(True)
def OnPressMe(self, event):
# This raises an exception
x = 1 / 0
def OnCloseWindow(self, event):
self.Destroy()
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, "Hello from wxPython")
frame.Show(True)
self.SetTopWindow(frame)
return True
if __name__ == "__main__":
app = MyApp(0)
app.MainLoop()