Ophidian is a Python module created to easily develop wxPython user interfaces. Ophidian provides wrapper classes to transparently load XRC resources and access the user controls inside them, with a minimum of coding effort.
Get the latest version at http://sourceforge.net/project/showfiles.php?group_id=144224
Send me your questions, suggestions, critics, etc.
Thankyou!
Martin Elsner Ramos ophidian@melsner.com.ar
The following example shows a little window with a text box where you can write your name. After that, clicking in the Say Hello button will show a greeting message box.
You can generate this file using wxGlade, XRCed or your favorite XRC editor. No need to write it by hand!
<?xml version="1.0" encoding="utf-8"?> <resource> <object class="wxFrame" name="HelloWorld"> <title>Ophidian sample</title> <centered>1</centered> <object class="wxBoxSizer"> <orient>wxVERTICAL</orient> <object class="sizeritem"> <object class="wxBoxSizer"> <orient>wxHORIZONTAL</orient> <object class="sizeritem"> <object class="wxStaticText"> <label>Your name:</label> </object> <flag>wxRIGHT|wxALIGN_CENTRE_VERTICAL</flag> <border>5</border> </object> <object class="sizeritem"> <object class="wxTextCtrl" name="nameField"/> <flag>wxALIGN_CENTRE_VERTICAL</flag> </object> </object> <flag>wxALL</flag> <border>5</border> </object> <object class="sizeritem"> <object class="wxButton" name="helloButton"> <label>Say Hello</label> </object> <flag>wxBOTTOM|wxALIGN_CENTRE</flag> <border>5</border> </object> </object> <bg>#FFFFFF</bg> </object> </resource>
See how easy is accessing the nameField text control. It’s already there, just because it was declared in the HelloWorld.xrc file.
import ophidian, wx class HelloWorld(ophidian.Frame): def helloButton_EVT_BUTTON(self, e): """ This method will be automatically called when the user clicks on the button whose name in the XRC file is helloButton. """ name = self.nameField.GetValue() m = wx.MessageDialog(parent=self.Root, message='Hello, %s!' % name, style=wx.OK|wx.ICON_INFORMATION) m.ShowModal() # Main method. if __name__ == '__main__': w = HelloWorld() w.Show() ophidian.Application.MainLoop()