wxWidgets/utils/wxPython/tests/spies.py
Robin Dunn 8bf5d46efb wxPython 2.1b1:
Added the missing wxWindow.GetUpdateRegion() method.

	Made a new change in SWIG (update your patches everybody) that
	provides a fix for global shadow objects that get an exception in
	their __del__ when their extension module has already been deleted.
	It was only a 1 line change in .../SWIG/Modules/pycpp.cxx at about
	line 496 if you want to do it by hand.

	It is now possible to run through MainLoop more than once in any one
	process.  The cleanup that used to happen as MainLoop completed (and
	prevented it from running again) has been delayed until the wxc module
	is being unloaded by Python.

	wxWindow.PopupMenu() now takes a wxPoint instead of  x,y.  Added
	wxWindow.PopupMenuXY to be consistent with some other methods.

	Added wxGrid.SetEditInPlace and wxGrid.GetEditInPlace.

	You can now provide your own app.MainLoop method.  See
	wxPython/demo/demoMainLoop.py for an example and some explaination.

	Got the in-place-edit for the wxTreeCtrl fixed and added some demo
	code to show how to use it.

	Put the wxIcon constructor back in for GTK as it now has one that
	matches MSW's.

	Added wxGrid.GetCells

	Added wxSystemSettings static methods as functions with names like
	wxSystemSettings_GetSystemColour.

	Removed wxPyMenu since using menu callbacks have been depreciated in
	wxWindows.  Use wxMenu and events instead.

	Added alternate wxBitmap constructor (for MSW only) as
	      wxBitmapFromData(data, type, width, height, depth = 1)

	Added a helper function named wxPyTypeCast that can convert shadow
	objects of one type into shadow objects of another type.  (Like doing
	a down-cast.)  See the implementation in wx.py for some docs.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
1999-07-31 07:56:15 +00:00

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