X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c8000995b55c058d1b3f5b0e01ff132a54c3e834..8eda5e3588fd5ef0fa91f94991e3cdc744852d3f:/wxPython/docs/wxPythonExamples.html diff --git a/wxPython/docs/wxPythonExamples.html b/wxPython/docs/wxPythonExamples.html new file mode 100644 index 0000000000..87f9cec26f --- /dev/null +++ b/wxPython/docs/wxPythonExamples.html @@ -0,0 +1,226 @@ + + + + + + +Example Programs Using wxPython + + + + + + +
+

Example Programs Using wxPython

+

A survival guide for the post-wx-prefixed world.

+ +++ + + + + + + + + + + + +
Author:Patrick K. O'Brien
Contact:pobrien@orbtech.com
Organization:Orbtech
Date:2003-07-02
Revision:1.2
+
+

Contents

+ +
+
+

Introduction

+

This document illustrates example programs using wxPython. All the +examples make use of the new wx package syntax introduced in wxPython +2.4.1, which is a bit different than older examples you might come +across.

+
+
+

Background (with tongue firmly in cheek)

+

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.

+

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.

+
+

Note

+

Say what?

+

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 (beginning with wxPython +version 2.4.1). 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...

+

If you want more of the technical details, read the wx package +documentation.

+
+

Rather than simply tell you that everything will be okay, I +decided to show 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.

+
+
+

Basic Program Example

+

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.

+

I include a simple App class in the frame module because the PyWrap +"wrapper" utility (pywrap) 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 PyWrap runtime wrapper and debug your +frames independent of your full application.

+

Here is the module (frame.py) that defines the frame class:

+
+#!/usr/bin/env python
+
+"""Basic frame class, with App for testing."""
+
+__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
+__cvsid__ = "$Id$"
+__revision__ = "$Revision$"[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()
+
+
+

And here is the module (app.py) that defines the application class +and imports the frame from frame.py:

+
+#!/usr/bin/env python
+
+"""Basic application class."""
+
+__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
+__cvsid__ = "$Id$"
+__revision__ = "$Revision$"[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()
+
+
+
+
+

Hello wxPython Example

+

This program displays an image file (wxPython.jpg) inside a frame +sized to match the graphic.

+
+

screenshots/hello-win98.png

+

Running hello.py on Windows.

+
+
+

screenshots/hello-linux.png

+

Running hello.py on Linux.

+
+
+

screenshots/hello-mac.png

+

Running hello.py on Mac OS X.

+
+

Here is the source code for hello.py:

+
+#!/usr/bin/env python
+
+"""Hello, wxPython! program."""
+
+__author__ = "Patrick K. O'Brien <pobrien@orbtech.com>"
+__cvsid__ = "$Id$"
+__revision__ = "$Revision$"[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()
+
+
+
+
+ + + +