#!/usr/bin/env python #---------------------------------------------------------------------------- # Name: test7.py # Purpose: A minimal wxPython test program # # Author: Robin Dunn # # Created: A long time ago, in a galaxy far, far away... # Copyright: (c) 1998 by Total Control Software # Licence: wxWidgets license #---------------------------------------------------------------------------- # NOTE: this sample requires wxPython 2.6 or newer # import the wxPython GUI package import wx # Create a new frame class, derived from the wxPython Frame. class MyFrame(wx.Frame): def __init__(self, parent, id, title): # First, call the base class' __init__ method to create the frame wx.Frame.__init__(self, parent, id, title) # Associate some events with methods of this class self.Bind(wx.EVT_SIZE, self.OnSize) self.Bind(wx.EVT_MOVE, self.OnMove) # Add a panel and some controls to display the size and position panel = wx.Panel(self, -1) label1 = wx.StaticText(panel, -1, "Size:") label2 = wx.StaticText(panel, -1, "Pos:") self.sizeCtrl = wx.TextCtrl(panel, -1, "", style=wx.TE_READONLY) self.posCtrl = wx.TextCtrl(panel, -1, "", style=wx.TE_READONLY) self.panel = panel # Use some sizers for layout of the widgets sizer = wx.FlexGridSizer(2, 2, 5, 5) sizer.Add(label1) sizer.Add(self.sizeCtrl) sizer.Add(label2) sizer.Add(self.posCtrl) border = wx.BoxSizer() border.Add(sizer, 0, wx.ALL, 15) panel.SetSizerAndFit(border) self.Fit() # This method is called by the System when the window is resized, # because of the association above. def OnSize(self, event): size = event.GetSize() self.sizeCtrl.SetValue("%s, %s" % (size.width, size.height)) # tell the event system to continue looking for an event handler, # so the default handler will get called. event.Skip() # This method is called by the System when the window is moved, # because of the association above. def OnMove(self, event): pos = event.GetPosition() self.posCtrl.SetValue("%s, %s" % (pos.x, pos.y)) # Every wxWidgets application must have a class derived from wx.App class MyApp(wx.App): # wxWindows calls this method to initialize the application def OnInit(self): # Create an instance of our customized Frame class frame = MyFrame(None, -1, "This is a test") frame.Show(True) # Tell wxWindows that this is our main window self.SetTopWindow(frame) # Return a success flag return True app = MyApp(0) # Create an instance of the application class app.MainLoop() # Tell it to start processing events