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
|
||
|
|
||
|
|
||
|
|