]>
Commit | Line | Data |
---|---|---|
1 | ================================= | |
2 | Example Programs Using wxPython | |
3 | ================================= | |
4 | ||
5 | -------------------------------------------------- | |
6 | A survival guide for the post-wx-prefixed world. | |
7 | -------------------------------------------------- | |
8 | ||
9 | :Author: Patrick K. O'Brien | |
10 | :Contact: pobrien@orbtech.com | |
11 | :Organization: Orbtech_ | |
12 | :Date: $Date$ | |
13 | :Revision: $Revision$ | |
14 | ||
15 | .. _Orbtech: http://www.orbtech.com/ | |
16 | ||
17 | .. contents:: | |
18 | ||
19 | ||
20 | Introduction | |
21 | ============ | |
22 | ||
23 | This document illustrates example programs using wxPython. All the | |
24 | examples make use of the new wx package syntax introduced in wxPython | |
25 | 2.4.1, which is a bit different than older examples you might come | |
26 | across. | |
27 | ||
28 | ||
29 | Background (with tongue firmly in cheek) | |
30 | ======================================== | |
31 | ||
32 | If something hits you on the head, don't run around screaming that the | |
33 | sky is falling. Instead, take a close look and see if it wasn't a | |
34 | "wx" prefix that hit you. Apparently, they're dropping off wxPython | |
35 | class names like flies dropping dead in the scorching heat of a | |
36 | summer's day. | |
37 | ||
38 | Yes, the world is changing, and even our little wxPython world must | |
39 | change with it. Then again, I'm not fond of pesky summertime flies, | |
40 | and I'm not too upset that the "wx" prefixes are going to bite the | |
41 | dust. I think it's for the best. But, being the kind, considerate | |
42 | person that I am, I decided to write this guide to make the wx | |
43 | namespace transition easier for everyone, even Chicken Little. | |
44 | ||
45 | .. note:: Say what? | |
46 | ||
47 | If you have no idea what I mean by the "wx namespace transition," | |
48 | consider yourself lucky. You can simply use these examples to | |
49 | learn wxPython in its current state (beginning with wxPython | |
50 | version 2.4.1). All you need to know is that previous wxPython | |
51 | code used a slightly different syntax that some folks (including | |
52 | me) considered ugly. So we changed it. And that's when the sky | |
53 | starting falling... | |
54 | ||
55 | If you want more of the technical details, read the `wx package | |
56 | documentation`_. | |
57 | ||
58 | .. _wx package documentation: wxPackage.html | |
59 | ||
60 | ||
61 | Rather than simply **tell** you that everything will be okay, I | |
62 | decided to **show** you that everything will be okay. To do that, | |
63 | I've created a bunch of example programs using the new wx package. I | |
64 | hope you like them. | |
65 | ||
66 | ||
67 | Basic Program Example | |
68 | ===================== | |
69 | ||
70 | It doesn't get much simpler than this. Every wxPython program needs | |
71 | an application and a frame. To encourage good coding habits, I've | |
72 | split them into separate modules. They don't do much, but they're a | |
73 | good starting point. | |
74 | ||
75 | I include a simple App class in the frame module because the PyWrap | |
76 | "wrapper" utility (``pywrap``) only works with modules that contain an | |
77 | application class. So including a simple one in each of your frame | |
78 | modules allows you to use the PyWrap runtime wrapper and debug your | |
79 | frames independent of your full application. | |
80 | ||
81 | Here is the module (``frame.py``) that defines the frame class: | |
82 | ||
83 | .. include:: ../samples/wx_examples/basic/frame.py | |
84 | :literal: | |
85 | ||
86 | And here is the module (``app.py``) that defines the application class | |
87 | and imports the frame from ``frame.py``: | |
88 | ||
89 | .. include:: ../samples/wx_examples/basic/app.py | |
90 | :literal: | |
91 | ||
92 | ||
93 | Hello wxPython Example | |
94 | ====================== | |
95 | ||
96 | This program displays an image file (``wxPython.jpg``) inside a frame | |
97 | sized to match the graphic. | |
98 | ||
99 | .. figure:: screenshots/hello-win98.png | |
100 | :scale: 100 | |
101 | ||
102 | Running ``hello.py`` on Windows. | |
103 | ||
104 | .. figure:: screenshots/hello-linux.png | |
105 | :scale: 100 | |
106 | ||
107 | Running ``hello.py`` on Linux. | |
108 | ||
109 | .. figure:: screenshots/hello-mac.png | |
110 | :scale: 100 | |
111 | ||
112 | Running ``hello.py`` on Mac OS X. | |
113 | ||
114 | Here is the source code for ``hello.py``: | |
115 | ||
116 | .. include:: ../samples/wx_examples/hello/hello.py | |
117 | :literal: | |
118 |