git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7748 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			137 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			137 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| ## import all of the wxPython GUI package
 | |
| from wxPython.wx import *
 | |
| 
 | |
| """
 | |
| I am trying to write a routine which will produce an entryform which I can
 | |
| later use to write GUI entryforms for databasis work.  When you run this
 | |
| program and chose option 150 (Invoer) under "L=EAers" the following error
 | |
| appears (repeated 6 times):
 | |
| 
 | |
| Gtk-CRITICAL **: file gtkwidget.c: line 1592 (gtk_widget_map): assertion
 | |
| `GTK_WIDGET_VISIBLE (widget) == TRUE' failed.=20
 | |
| """
 | |
| 
 | |
| class ToetsInvoer(wxPanel):
 | |
|     def __init__(self, parent):
 | |
|         wxPanel.__init__(self, parent, -1)
 | |
| 
 | |
|         wxStaticText(self, -1, "wxTextCtrl", wxPoint(5, 25), wxSize(75, 20))
 | |
|         wxTextCtrl(self, 10, "", wxPoint(80, 25), wxSize(150, 20))
 | |
|         EVT_TEXT(self, 10, self.EvtText)
 | |
| 
 | |
|         wxStaticText(self, -1, "Passsword", wxPoint(5, 50), wxSize(75, 20))
 | |
|         wxTextCtrl(self, 20, "", wxPoint(80, 50), wxSize(150, 20), wxTE_PASSWORD)
 | |
|         EVT_TEXT(self, 20, self.EvtText)
 | |
| 
 | |
|         wxStaticText(self, -1, "Multi-line", wxPoint(5, 75), wxSize(75, 20))
 | |
|         wxTextCtrl(self, 30, "", wxPoint(80, 75), wxSize(200, 150), wxTE_MULTILINE)
 | |
|         EVT_TEXT(self, 30, self.EvtText)
 | |
| 
 | |
|         self.Show(true)
 | |
| 
 | |
|     def EvtText(self, event):
 | |
|         self.log.WriteText('EvtText: %s\n' % event.GetString())
 | |
| 
 | |
| #---------------------------------------------------------------------------
 | |
| 
 | |
| ## Create a new frame class, derived from the wxPython Frame.
 | |
| class HoofRaam(wxFrame):
 | |
| 
 | |
|     def __init__(self, pa, id, titel):
 | |
|         # First, call the base class' __init__ method to create the frame
 | |
|         wxFrame.__init__(self, pa, id, titel,wxPyDefaultPosition,
 | |
|                          wxSize(420, 200))
 | |
| 
 | |
|         self.CreateStatusBar(2)
 | |
|         mainmenu = wxMenuBar()
 | |
|         menu = wxMenu()
 | |
|         menu.Append(100, '&Kopieer', 'Maak rugsteun')
 | |
|         menu.Append(101, '&Nuwe stel', 'Begin nuwe databasis')
 | |
|         menu.Append(150, '&Invoer', 'Toets invoervorm')
 | |
|         menu.AppendSeparator()
 | |
|         menu.Append(200, 'Kl&aar', 'Gaan uit die program uit!')
 | |
|         mainmenu.Append(menu, "&L=EAers")
 | |
|         self.SetMenuBar(mainmenu)
 | |
| #         if wxPlatform == '__WXMSW__':
 | |
| #             print menu.GetHelpString(100)
 | |
| #             print mainmenu.GetHelpString(101)
 | |
| #             print mainmenu.GetHelpString(200)
 | |
| #             self.DragAcceptFiles(true)
 | |
| 
 | |
| 
 | |
| 
 | |
|         # Associate some events with methods of this class
 | |
|         self.Connect(-1, -1, wxEVT_SIZE, self.OnSize)
 | |
|         self.Connect(-1, -1, wxEVT_MOVE, self.OnMove)
 | |
|         self.Connect(-1, -1, wxEVT_COMMAND_MENU_SELECTED, self.OnMenuCommand)
 | |
|         self.Connect(-1, -1, wxEVT_DROP_FILES, self.OnDropFiles)
 | |
| 
 | |
|         self.child = None
 | |
|         #self.child = ToetsInvoer(self)
 | |
| 
 | |
|     # This method is called automatically when the CLOSE event is
 | |
|     # sent to this window
 | |
|     def OnCloseWindow(self, event):
 | |
|         # tell the window to kill itself
 | |
|         self.Destroy()
 | |
| 
 | |
| 
 | |
|     # This method is called by the System when the window is resized,
 | |
|     # because of the association above.
 | |
|     def OnSize(self, event):
 | |
|         size = event.GetSize()
 | |
|         print "grootte:", size.width, size.height
 | |
|         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()
 | |
|         print "pos:", pos.x, pos.y
 | |
| 
 | |
|     def OnMenuCommand(self, event):
 | |
|         # why isn't this a wxMenuEvent???
 | |
|         print event, event.GetInt()
 | |
|         if event.GetInt() == 200:
 | |
|             self.Close()
 | |
|         if event.GetInt() == 150:
 | |
|             x = ToetsInvoer(self)
 | |
|         if event.GetInt() == 101:
 | |
|             print "Nommer 101 is gekies"
 | |
| 
 | |
|     def OnDropFiles(self, event): #werk net in windows
 | |
|         fileList = event.GetFiles()
 | |
|         for file in fileList:
 | |
|             print file
 | |
| 
 | |
|     def OnCloseWindow(self, event):
 | |
|         print 'Klaar'
 | |
|         self.Destroy()
 | |
| 
 | |
| #---------------------------------------------------------------------------
 | |
| 
 | |
| # Every wxWindows application must have a class derived from wxApp
 | |
| class MyProg(wxApp):
 | |
| 
 | |
|     # wxWindows calls this method to initialize the application
 | |
|     def OnInit(self):
 | |
| 
 | |
|         # Create an instance of our customized Frame class
 | |
|         raam = HoofRaam(NULL, -1, "Taalunie")
 | |
|         raam.Show(true)
 | |
| 
 | |
|         # Tell wxWindows that this is our main window
 | |
|         self.SetTopWindow(raam)
 | |
| 
 | |
|         # Return a success flag
 | |
|         return true
 | |
| 
 | |
| #---------------------------------------------------------------------------
 | |
| 
 | |
| 
 | |
| app = MyProg(0)     # Create an instance of the application class
 | |
| app.MainLoop()     # Tell it to start processing events
 | |
| 
 | |
| 
 | |
| 
 |