[PyCrust-cvs] wx/examples examples.html,NONE,1.1 default.css,NONE,1.1
Brought to you by:
pobrien
From: <po...@us...> - 2003-03-21 20:38:06
|
Update of /cvsroot/pycrust/wx/examples In directory sc8-pr-cvs1:/tmp/cvs-serv14870 Added Files: examples.html default.css Log Message: Html version of doc. --- NEW FILE: examples.html --- <?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="generator" content="Docutils 0.2.8: http://docutils.sourceforge.net/" /> <title>Example Programs Using wxPython</title> <meta name="author" content="Patrick K. O'Brien" /> <meta name="date" content="2003-03-21" /> <link rel="stylesheet" href="default.css" type="text/css" /> </head> <body> <div class="document" id="example-programs-using-wxpython"> <h1 class="title">Example Programs Using wxPython</h1> <h2 class="subtitle" id="a-survival-guide-for-the-post-wx-prefixed-world">A survival guide for the post-wx-prefixed world.</h2> <table class="docinfo" frame="void" rules="none"> <col class="docinfo-name" /> <col class="docinfo-content" /> <tbody valign="top"> <tr><th class="docinfo-name">Author:</th> <td>Patrick K. O'Brien</td></tr> <tr><th class="docinfo-name">Contact:</th> <td><a class="first last reference" href="mailto:pobrien@orbtech.com">pobrien@orbtech.com</a></td></tr> <tr><th class="docinfo-name">Date:</th> <td>2003-03-21</td></tr> <tr><th class="docinfo-name">Revision:</th> <td>1.1</td></tr> </tbody> </table> <div class="contents topic" id="contents"> <p class="topic-title"><a name="contents">Contents</a></p> <ul class="simple"> <li><a class="reference" href="#introduction" id="id1" name="id1">Introduction</a></li> <li><a class="reference" href="#basic" id="id2" name="id2">Basic</a></li> <li><a class="reference" href="#hello" id="id3" name="id3">Hello</a></li> </ul> </div> <div class="section" id="introduction"> <h1><a class="toc-backref" href="#id1" name="introduction">Introduction</a></h1> <p>If something hits you on the head, don't run around screaming that the sky is falling. Instead, take a close look and see if it wasn't a "wx" prefix that hit you. Apparently, they're dropping off wxPython class names like flies dropping dead in the scorching heat of a summer's day.</p> <p>Yes, the world is changing, and even our little wxPython world must change with it. Then again, I'm not fond of pesky summertime flies, and I'm not too upset that the "wx" prefixes are going to bite the dust. I think it's for the best. But, being the kind, considerate person that I am, I decided to write this guide to make the wx namespace transition easier for everyone, even Chicken Little.</p> <div class="sidebar"> <p class="sidebar-title">Say what?</p> <p>If you have no idea what I mean by the "wx namespace transition," consider yourself lucky. You can simply use these examples to learn wxPython in its current state. All you need to know is that previous wxPython code used a slightly different syntax that some folks (including me) considered ugly. So we changed it. And that's when the sky starting falling...</p> </div> <p>Rather than simply <strong>tell</strong> you that everything will be okay, I decided to <strong>show</strong> you that everything will be okay. To do that, I've created a bunch of example programs using the new wx package. I hope you like them.</p> </div> <div class="section" id="basic"> <h1><a class="toc-backref" href="#id2" name="basic">Basic</a></h1> <p>It doesn't get much simpler than this. Every wxPython program needs an application and a frame. To encourage good coding habits, I've split them into separate modules. They don't do much, but they're a good starting point.</p> <p>I include a simple App class in the frame module because the PyCrust "wrapper" utility (<tt class="literal"><span class="pre">wrap.py</span></tt>) only works with modules that contain an application class. So including a simple one in each of your frame modules allows you to use the PyCrust runtime wrapper and debug your frames independent of your full application.</p> <p>Here is the module (<tt class="literal"><span class="pre">frame.py</span></tt>) that defines the frame class:</p> <pre class="literal-block"> #!/usr/bin/env python """Basic frame class, with App for testing.""" __author__ = "Patrick K. O'Brien <pobrien@orbtech.com>" __cvsid__ = "$Id: examples.html,v 1.1 2003/03/21 20:38:01 pobrien Exp $" __revision__ = "$Revision: 1.1 $"[11:-2] import wx class Frame(wx.Frame): """Frame class.""" def __init__(self, parent=None, id=-1, title='Title', pos=wx.DefaultPosition, size=(400, 200)): """Create a Frame instance.""" wx.Frame.__init__(self, parent, id, title, pos, size) class App(wx.App): """Application class.""" def OnInit(self): self.frame = Frame() self.frame.Show() self.SetTopWindow(self.frame) return True def main(): app = App() app.MainLoop() if __name__ == '__main__': main() </pre> <p>And here is the module (<tt class="literal"><span class="pre">app.py</span></tt>) that defines the application class and imports the frame from <tt class="literal"><span class="pre">frame.py</span></tt>:</p> <pre class="literal-block"> #!/usr/bin/env python """Basic application class.""" __author__ = "Patrick K. O'Brien <pobrien@orbtech.com>" __cvsid__ = "$Id: examples.html,v 1.1 2003/03/21 20:38:01 pobrien Exp $" __revision__ = "$Revision: 1.1 $"[11:-2] import wx from frame import Frame class App(wx.App): """Application class.""" def OnInit(self): self.frame = Frame() self.frame.Show() self.SetTopWindow(self.frame) return True def main(): app = App() app.MainLoop() if __name__ == '__main__': main() </pre> </div> <div class="section" id="hello"> <h1><a class="toc-backref" href="#id3" name="hello">Hello</a></h1> <p>This program displays an image file (<tt class="literal"><span class="pre">wxPython.jpg</span></tt>) inside a frame sized to match the graphic.</p> <div class="figure"> <p><img alt="screenshots/hello-win98.png" scale="100" src="screenshots/hello-win98.png" /></p> <p class="caption">Running <tt class="literal"><span class="pre">hello.py</span></tt> on Windows.</p> </div> <div class="figure"> <p><img alt="screenshots/hello-linux.png" scale="100" src="screenshots/hello-linux.png" /></p> <p class="caption">Running <tt class="literal"><span class="pre">hello.py</span></tt> on Linux.</p> </div> <div class="figure"> <p><img alt="screenshots/hello-mac.png" scale="100" src="screenshots/hello-mac.png" /></p> <p class="caption">Running <tt class="literal"><span class="pre">hello.py</span></tt> on Mac OS X.</p> </div> <p>Here is the source code for <tt class="literal"><span class="pre">hello.py</span></tt>:</p> <pre class="literal-block"> #!/usr/bin/env python """Hello, wxPython! program.""" __author__ = "Patrick K. O'Brien <pobrien@orbtech.com>" __cvsid__ = "$Id: examples.html,v 1.1 2003/03/21 20:38:01 pobrien Exp $" __revision__ = "$Revision: 1.1 $"[11:-2] import wx class Frame(wx.Frame): """Frame class that displays an image.""" def __init__(self, image, parent=None, id=-1, pos=wx.DefaultPosition, title='Hello, wxPython!'): """Create a Frame instance and display image.""" temp = image.ConvertToBitmap() size = temp.GetWidth(), temp.GetHeight() wx.Frame.__init__(self, parent, id, title, pos, size) self.bmp = wx.StaticBitmap(parent=self, id=-1, bitmap=temp) class App(wx.App): """Application class.""" def OnInit(self): wx.InitAllImageHandlers() image = wx.Image('wxPython.jpg', wx.BITMAP_TYPE_JPEG) self.frame = Frame(image) self.frame.Show() self.SetTopWindow(self.frame) return True def main(): app = App() app.MainLoop() if __name__ == '__main__': main() </pre> </div> </div> </body> </html> --- NEW FILE: default.css --- /* :Author: David Goodger :Contact: go...@us... :date: $Date: 2003/03/21 20:38:01 $ :version: $Revision: 1.1 $ :copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. */ .first { margin-top: 0 } .last { margin-bottom: 0 } a.toc-backref { text-decoration: none ; color: black } dd { margin-bottom: 0.5em } div.abstract { margin: 2em 5em } div.abstract p.topic-title { font-weight: bold ; text-align: center } div.attention, div.caution, div.danger, div.error, div.hint, div.important, div.note, div.tip, div.warning { margin: 2em ; border: medium outset ; padding: 1em } div.attention p.admonition-title, div.caution p.admonition-title, div.danger p.admonition-title, div.error p.admonition-title, div.warning p.admonition-title { color: red ; font-weight: bold ; font-family: sans-serif } div.hint p.admonition-title, div.important p.admonition-title, div.note p.admonition-title, div.tip p.admonition-title { font-weight: bold ; font-family: sans-serif } div.dedication { margin: 2em 5em ; text-align: center ; font-style: italic } div.dedication p.topic-title { font-weight: bold ; font-style: normal } div.figure { margin-left: 2em } div.footer, div.header { font-size: smaller } div.sidebar { margin-left: 1em ; border: medium outset ; padding: 0em 1em ; background-color: #ffffee ; width: 40% ; float: right } div.system-messages { margin: 5em } div.system-messages h1 { color: red } div.system-message { border: medium outset ; padding: 1em } div.system-message p.system-message-title { color: red ; font-weight: bold } div.topic { margin: 2em } h1.title { text-align: center } h2.subtitle { text-align: center } hr { width: 75% } ol.simple, ul.simple { margin-bottom: 1em } ol.arabic { list-style: decimal } ol.loweralpha { list-style: lower-alpha } ol.upperalpha { list-style: upper-alpha } ol.lowerroman { list-style: lower-roman } ol.upperroman { list-style: upper-roman } p.caption { font-style: italic } p.credits { font-style: italic ; font-size: smaller } p.label { white-space: nowrap } p.sidebar-title { font-family: sans-serif ; font-weight: bold ; font-size: larger } p.sidebar-subtitle { font-family: sans-serif ; font-weight: bold } p.topic-title { font-weight: bold } pre.address { margin-bottom: 0 ; margin-top: 0 ; font-family: serif ; font-size: 100% } pre.line-block { font-family: serif ; font-size: 100% } pre.literal-block, pre.doctest-block { margin-left: 2em ; margin-right: 2em ; background-color: #eeeeee } span.classifier { font-family: sans-serif ; font-style: oblique } span.classifier-delimiter { font-family: sans-serif ; font-weight: bold } span.interpreted { font-family: sans-serif } span.option { white-space: nowrap } span.option-argument { font-style: italic } span.pre { white-space: pre } span.problematic { color: red } table { margin-top: 0.5em ; margin-bottom: 0.5em } table.citation { border-left: solid thin gray ; padding-left: 0.5ex } table.docinfo { margin: 2em 4em } table.footnote { border-left: solid thin black ; padding-left: 0.5ex } td, th { padding-left: 0.5em ; padding-right: 0.5em ; vertical-align: top } th.docinfo-name, th.field-name { font-weight: bold ; text-align: left ; white-space: nowrap } h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { font-size: 100% } tt { background-color: #eeeeee } ul.auto-toc { list-style-type: none } |