]>
git.saurik.com Git - wxWidgets.git/blob - wxPython/demo/DialogUnits.py
   2 #---------------------------------------------------------------------------- 
   4 # Purpose:      A minimal wxPython program that is a bit smarter than test1. 
   8 # Created:      A long time ago, in a galaxy far, far away... 
  10 # Copyright:    (c) 1998 by Total Control Software 
  11 # Licence:      wxWindows license 
  12 #---------------------------------------------------------------------------- 
  15 ## import all of the wxPython GUI package 
  16 from wxPython
.wx 
import * 
  19 #--------------------------------------------------------------------------- 
  21 ## Create a new frame class, derived from the wxPython Frame. 
  22 class MyFrame(wxFrame
): 
  24     def __init__(self
, parent
, id, title
): 
  25         # First, call the base class' __init__ method to create the frame 
  26         wxFrame
.__init
__(self
, parent
, id, title
, 
  27                          wxPoint(100, 100), wxSize(160, 100)) 
  29         # Associate some events with methods of this class 
  30         EVT_SIZE(self
, self
.OnSize
) 
  31         EVT_MOVE(self
, self
.OnMove
) 
  32         EVT_CLOSE(self
, self
.OnCloseWindow
) 
  34         # Add a panel and some controls to display the size and position 
  35         panel 
= wxPanel(self
, -1) 
  36         wxStaticText(panel
, -1, "Size:", 
  37                      wxDLG_PNT(panel
, wxPoint(4, 4)),  wxDefaultSize
) 
  38         wxStaticText(panel
, -1, "Pos:", 
  39                      wxDLG_PNT(panel
, wxPoint(4, 16)), wxDefaultSize
) 
  40         self
.sizeCtrl 
= wxTextCtrl(panel
, -1, "", 
  41                                    wxDLG_PNT(panel
, wxPoint(24, 4)), 
  42                                    wxDLG_SZE(panel
, wxSize(36, -1)), 
  45         self
.posCtrl 
= wxTextCtrl(panel
, -1, "", 
  46                                   wxDLG_PNT(panel
, wxPoint(24, 16)), 
  47                                   wxDLG_SZE(panel
, wxSize(36, -1)), 
  50         #print wxDLG_PNT(panel, wxPoint(24, 4)), wxDLG_SZE(panel, wxSize(36, -1)) 
  51         #print wxDLG_PNT(panel, wxPoint(24, 16)),wxDLG_SZE(panel, wxSize(36, -1)) 
  54     # This method is called automatically when the CLOSE event is 
  56     def OnCloseWindow(self
, event
): 
  57         # tell the window to kill itself 
  61     # This method is called by the System when the window is resized, 
  62     # because of the association above. 
  63     def OnSize(self
, event
): 
  64         size 
= event
.GetSize() 
  65         self
.sizeCtrl
.SetValue("%s, %s" % (size
.width
, size
.height
)) 
  67         # tell the event system to continue looking for an event handler, 
  68         # so the default handler will get called. 
  71     # This method is called by the System when the window is moved, 
  72     # because of the association above. 
  73     def OnMove(self
, event
): 
  74         pos 
= event
.GetPosition() 
  75         self
.posCtrl
.SetValue("%s, %s" % (pos
.x
, pos
.y
)) 
  79 #--------------------------------------------------------------------------- 
  80 # if running standalone 
  82 if __name__ 
== "__main__": 
  83     # Every wxWindows application must have a class derived from wxApp 
  86         # wxWindows calls this method to initialize the application 
  89             # Create an instance of our customized Frame class 
  90             frame 
= MyFrame(None, -1, "This is a test") 
  93             # Tell wxWindows that this is our main window 
  94             self
.SetTopWindow(frame
) 
  96             # Return a success flag 
 100     app 
= MyApp(0)     # Create an instance of the application class 
 101     app
.MainLoop()     # Tell it to start processing events 
 104 #--------------------------------------------------------------------------- 
 105 # if running as part of the Demo Framework... 
 107 def runTest(frame
, nb
, log
): 
 108     win 
= MyFrame(frame
, -1, "This is a test") 
 114 A simple example that shows how to use Dialog Units. 
 117 #----------------------------------------------------------------------------