File: overview_python.html

package info (click to toggle)
wxpython3.0 3.0.2.0%2Bdfsg-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 482,760 kB
  • ctags: 518,293
  • sloc: cpp: 2,127,226; python: 294,045; makefile: 51,942; ansic: 19,033; sh: 3,013; xml: 1,629; perl: 17
file content (390 lines) | stat: -rw-r--r-- 47,048 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
<!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">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>wxWidgets: wxPython Overview</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="extra_stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="page_container">
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0" style="width: 100%;">
 <tbody>
 <tr>
  <td id="projectlogo">
    <a href="http://www.wxwidgets.org/" target="_new">
      <img alt="wxWidgets" src="logo.png"/>
    </a>
  </td>
  <td style="padding-left: 0.5em; text-align: right;">
   <span id="projectnumber">Version: 3.0.2</span>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- Generated by Doxygen 1.8.2 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Categories</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="index.html">Documentation</a></li><li class="navelem"><a class="el" href="page_topics.html">Programming Guides</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">wxPython Overview </div>  </div>
</div><!--header-->
<div class="contents">
<div class="toc"><h3>Table of Contents</h3>
<ul><li class="level1"><a href="#overview_python_what">What is wxPython?</a><ul><li class="level2"><a href="#overview_python_what_py">Python</a></li>
<li class="level2"><a href="#overview_python_what_wxpy">wxPython</a></li>
</ul>
</li>
<li class="level1"><a href="#overview_python_why">Why Use wxPython?</a></li>
<li class="level1"><a href="#overview_python_othergui">Other Python GUIs</a><ul><li class="level2"><a href="#overview_python_othergui_tkinter">Tkinter</a></li>
<li class="level2"><a href="#overview_python_othergui_pythonwin">PythonWin</a></li>
<li class="level2"><a href="#overview_python_othergui_others">Others</a></li>
</ul>
</li>
<li class="level1"><a href="#overview_python_using">Using wxPython</a><ul><li class="level2"><a href="#overview_python_using_notice">Things to Notice</a></li>
</ul>
</li>
<li class="level1"><a href="#overview_python_classes">Classes Implemented in wxPython</a></li>
<li class="level1"><a href="#overview_python_help">Where to Go for Help</a></li>
</ul>
</div>
<div class="textblock"><p>This topic was written by Robin Dunn, author of the <a href="http://www.python.org/">wxPython</a> wrapper.</p>
<h1><a class="anchor" id="overview_python_what"></a>
What is wxPython?</h1>
<p>wxPython is a blending of the wxWidgets GUI classes and the Python programming language.</p>
<h2><a class="anchor" id="overview_python_what_py"></a>
Python</h2>
<p>So what is Python? Go to <a href="http://www.python.org">http://www.python.org</a> to learn more, but in a nutshell Python is an interpreted, interactive, object-oriented programming language. It is often compared to Tcl, Perl, Scheme or Java.</p>
<p>Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, and new built-in modules are easily written in C or C++. Python is also usable as an extension language for applications that need a programmable interface.</p>
<p>Python is copyrighted but freely usable and distributable, even for commercial use.</p>
<h2><a class="anchor" id="overview_python_what_wxpy"></a>
wxPython</h2>
<p>wxPython is a Python package that can be imported at runtime that includes a collection of Python modules and an extension module (native code). It provides a series of Python classes that mirror (or shadow) many of the wxWidgets GUI classes. This extension module attempts to mirror the class hierarchy of wxWidgets as closely as possible. This means that there is a <a class="el" href="classwx_frame.html" title="A frame is a window whose size and position can (usually) be changed by the user.">wxFrame</a> class in wxPython that looks, smells, tastes and acts almost the same as the <a class="el" href="classwx_frame.html" title="A frame is a window whose size and position can (usually) be changed by the user.">wxFrame</a> class in the C++ version.</p>
<p>wxPython is very versatile. It can be used to create standalone GUI applications, or in situations where Python is embedded in a C++ application as an internal scripting or macro language.</p>
<p>Currently wxPython is available for Win32 platforms and the GTK toolkit (wxGTK) on most Unix/X-windows platforms. See the wxPython website <a href="http://wxPython.org/">http://wxPython.org/</a> for details about getting wxPython working for you.</p>
<h1><a class="anchor" id="overview_python_why"></a>
Why Use wxPython?</h1>
<p>So why would you want to use wxPython over just C++ and wxWidgets? Personally I prefer using Python for everything. I only use C++ when I absolutely have to eke more performance out of an algorithm, and even then I usually code it as an extension module and leave the majority of the program in Python.</p>
<p>Another good thing to use wxPython for is quick prototyping of your wxWidgets apps. With C++ you have to continuously go though the edit-compile-link-run cycle, which can be quite time consuming. With Python it is only an edit-run cycle. You can easily build an application in a few hours with Python that would normally take a few days or longer with C++. Converting a wxPython app to a C++/wxWidgets app should be a straight forward task.</p>
<h1><a class="anchor" id="overview_python_othergui"></a>
Other Python GUIs</h1>
<p>There are other GUI solutions out there for Python.</p>
<h2><a class="anchor" id="overview_python_othergui_tkinter"></a>
Tkinter</h2>
<p>Tkinter is the de facto standard GUI for Python. It is available on nearly every platform that Python and Tcl/TK are. Why Tcl/Tk? Well because Tkinter is just a wrapper around Tcl's GUI toolkit, Tk. This has it's upsides and it's downsides...</p>
<p>The upside is that Tk is a pretty versatile toolkit. It can be made to do a lot of things in a lot of different environments. It is fairly easy to create new widgets and use them interchangeably in your programs.</p>
<p>The downside is Tcl. When using Tkinter you actually have two separate language interpreters running, the Python interpreter and the Tcl interpreter for the GUI. Since the guts of Tcl is mostly about string processing, it is fairly slow as well. (Not too bad on a fast Pentium II, but you really notice the difference on slower machines.)</p>
<p>It wasn't until the latest version of Tcl/Tk that native Look and Feel was possible on non-Motif platforms. This is because Tk usually implements its own widgets (controls) even when there are native controls available.</p>
<p>Tkinter is a pretty low-level toolkit. You have to do a lot of work (verbose program code) to do things that would be much simpler with a higher level of abstraction.</p>
<h2><a class="anchor" id="overview_python_othergui_pythonwin"></a>
PythonWin</h2>
<p>PythonWin is an add-on package for Python for the Win32 platform. It includes wrappers for MFC as well as much of the Win32 API. Because of its foundation, it is very familiar for programmers who have experience with MFC and the Win32 API. It is obviously not compatible with other platforms and toolkits. PythonWin is organized as separate packages and modules so you can use the pieces you need without having to use the GUI portions.</p>
<h2><a class="anchor" id="overview_python_othergui_others"></a>
Others</h2>
<p>There are quite a few other GUI modules available for Python, some in active use, some that haven't been updated for ages. Most are simple wrappers around some C or C++ toolkit or another, and most are not cross-platform compatible. See <a href="http://pypi.python.org/pypi?:action=browse&amp;show=all&amp;c=433">this link</a> for a listing of a few of them.</p>
<h1><a class="anchor" id="overview_python_using"></a>
Using wxPython</h1>
<p>I'm not going to try and teach the Python language here. You can do that at the <a href="http://www.python.org/doc/tut/tut.html">Python Tutorial</a>. I'm also going to assume that you know a bit about wxWidgets already, enough to notice the similarities in the classes used.</p>
<p>Take a look at the following wxPython program. You can find a similar program in the <code>wxPython/demo</code> directory, named <code>DialogUnits.py</code>. If your Python and wxPython are properly installed, you should be able to run it by issuing this command:</p>
<div class="fragment"><div class="line">python DialogUnits.py</div>
</div><!-- fragment --><div class="fragment"><div class="line">01: ## <span class="keyword">import</span> all of the wxPython GUI <span class="keyword">package</span></div>
<div class="line"><span class="keyword"></span>02: from wxPython.wx import *</div>
<div class="line">03:</div>
<div class="line">04: ## Create a new frame class, derived from the wxPython Frame.</div>
<div class="line">05: class MyFrame(wxFrame):</div>
<div class="line">06:</div>
<div class="line">07:     def __init__(self, parent, id, title):</div>
<div class="line">08:         # First, call the base class&#39; __init__ method to create the frame</div>
<div class="line">09:         wxFrame.__init__(self, parent, id, title,</div>
<div class="line">10:                          wxPoint(100, 100), wxSize(160, 100))</div>
<div class="line">11:</div>
<div class="line">12:         # Associate some events with methods of this class</div>
<div class="line">13:         EVT_SIZE(self, self.OnSize)</div>
<div class="line">14:         EVT_MOVE(self, self.OnMove)</div>
<div class="line">15:</div>
<div class="line">16:         # Add a panel and some controls to display the size and position</div>
<div class="line">17:         panel = wxPanel(self, -1)</div>
<div class="line">18:         wxStaticText(panel, -1, &quot;Size:&quot;,</div>
<div class="line">19:                      wxDLG_PNT(panel, wxPoint(4, 4)),  wxDefaultSize)</div>
<div class="line">20:         wxStaticText(panel, -1, &quot;Pos:&quot;,</div>
<div class="line">21:                      wxDLG_PNT(panel, wxPoint(4, 14)), wxDefaultSize)</div>
<div class="line">22:         self.sizeCtrl = wxTextCtrl(panel, -1, &quot;&quot;,</div>
<div class="line">23:                                    wxDLG_PNT(panel, wxPoint(24, 4)),</div>
<div class="line">24:                                    wxDLG_SZE(panel, wxSize(36, -1)),</div>
<div class="line">25:                                    wxTE_READONLY)</div>
<div class="line">26:         self.posCtrl = wxTextCtrl(panel, -1, &quot;&quot;,</div>
<div class="line">27:                                   wxDLG_PNT(panel, wxPoint(24, 14)),</div>
<div class="line">28:                                   wxDLG_SZE(panel, wxSize(36, -1)),</div>
<div class="line">29:                                   wxTE_READONLY)</div>
<div class="line">30:</div>
<div class="line">31:</div>
<div class="line">32:     # This method is called automatically when the CLOSE event is</div>
<div class="line">33:     # sent to this window</div>
<div class="line">34:     def OnCloseWindow(self, event):</div>
<div class="line">35:         # tell the window to kill itself</div>
<div class="line">36:         self.Destroy()</div>
<div class="line">37:</div>
<div class="line">38:     # This method is called by the system when the window is resized,</div>
<div class="line">39:     # because of the association above.</div>
<div class="line">40:     def OnSize(self, event):</div>
<div class="line">41:         size = event.GetSize()</div>
<div class="line">42:         self.sizeCtrl.SetValue(&quot;%s, %s&quot; % (size.width, size.height))</div>
<div class="line">43:</div>
<div class="line">44:         # tell the event system to continue looking for an event handler,</div>
<div class="line">45:         # so the default handler will get called.</div>
<div class="line">46:         event.Skip()</div>
<div class="line">47:</div>
<div class="line">48:     # This method is called by the system when the window is moved,</div>
<div class="line">49:     # because of the association above.</div>
<div class="line">50:     def OnMove(self, event):</div>
<div class="line">51:         pos = event.GetPosition()</div>
<div class="line">52:         self.posCtrl.SetValue(&quot;%s, %s&quot; % (pos.x, pos.y))</div>
<div class="line">53:</div>
<div class="line">54:</div>
<div class="line">55: # Every wxWidgets application must have a class derived from wxApp</div>
<div class="line">56: class MyApp(wxApp):</div>
<div class="line">57:</div>
<div class="line">58:     # wxWidgets calls this method to initialize the application</div>
<div class="line">59:     def OnInit(self):</div>
<div class="line">60:</div>
<div class="line">61:         # Create an instance of our customized Frame class</div>
<div class="line">62:         frame = MyFrame(NULL, -1, &quot;This is a test&quot;)</div>
<div class="line">63:         frame.Show(true)</div>
<div class="line">64:</div>
<div class="line">67:</div>
<div class="line">68:         # Return a success flag</div>
<div class="line">69:         return true</div>
<div class="line">70:</div>
<div class="line">71:</div>
<div class="line">72: app = MyApp(0)     # Create an instance of the application class</div>
<div class="line">73: app.MainLoop()     # Tell it to start processing events</div>
<div class="line">74:</div>
</div><!-- fragment --><h2><a class="anchor" id="overview_python_using_notice"></a>
Things to Notice</h2>
<p>At line 2 the wxPython classes, constants, and etc. are imported into the current module's namespace. If you prefer to reduce namespace pollution you can use <code>"from wxPython import wx"</code> and then access all the wxPython identifiers through the wx module, for example, <code>"wx.wxFrame"</code>.</p>
<p>At line 13 the frame's sizing and moving events are connected to methods of the class. These helper functions are intended to be like the event table macros that wxWidgets employs. But since static event tables are impossible with wxPython, we use helpers that are named the same to dynamically build the table. The only real difference is that the first argument to the event helpers is always the window that the event table entry should be added to.</p>
<p>Notice the use of <code>wxDLG_PNT</code> and <code>wxDLG_SZE</code> in lines 19-29 to convert from dialog units to pixels. These helpers are unique to wxPython since Python can't do method overloading like C++.</p>
<p>There is an <code>OnCloseWindow</code> method at line 34 but no call to <code>EVT_CLOSE</code> to attach the event to the method. Does it really get called? The answer is, yes it does. This is because many of the standard events are attached to windows that have the associated standard method names. I have tried to follow the lead of the C++ classes in this area to determine what is standard but since that changes from time to time I can make no guarantees, nor will it be fully documented. When in doubt, use an <code>EVT_***</code> function.</p>
<p>At lines 17 to 21 notice that there are no saved references to the panel or the static text items that are created. Those of you who know Python might be wondering what happens when Python deletes these objects when they go out of scope. Do they disappear from the GUI? They don't. Remember that in wxPython the Python objects are just shadows of the corresponding C++ objects. Once the C++ windows and controls are attached to their parents, the parents manage them and delete them when necessary. For this reason, most wxPython objects do not need to have a <code><b>del</b></code> method that explicitly causes the C++ object to be deleted. If you ever have the need to forcibly delete a window, use the Destroy() method as shown on line 36.</p>
<p>Just like wxWidgets in C++, wxPython apps need to create a class derived from <code><a class="el" href="classwx_app.html" title="The wxApp class represents the application itself when wxUSE_GUI=1.">wxApp</a></code> (line 56) that implements a method named <code>OnInit</code>, (line 59.) This method should create the application's main window (line 62) and show it.</p>
<p>And finally, at line 72 an instance of the application class is created. At this point wxPython finishes initializing itself, and calls the <code>OnInit</code> method to get things started. (The zero parameter here is a flag for functionality that isn't quite implemented yet. Just ignore it for now.) The call to <code>MainLoop</code> at line 73 starts the event loop which continues until the application terminates or all the top level windows are closed.</p>
<h1><a class="anchor" id="overview_python_classes"></a>
Classes Implemented in wxPython</h1>
<p>The following classes are supported in wxPython. Most provide nearly full implementations of the public interfaces specified in the C++ documentation, others are less so. They will all be brought as close as possible to the C++ spec over time.</p>
<ul>
<li><a class="el" href="classwx_accelerator_entry.html" title="An object used by an application wishing to create an accelerator table (see wxAcceleratorTable).">wxAcceleratorEntry</a> </li>
<li><a class="el" href="classwx_accelerator_table.html" title="An accelerator table allows the application to specify a table of keyboard shortcuts for menu or butt...">wxAcceleratorTable</a> </li>
<li><a class="el" href="classwx_activate_event.html" title="An activate event is sent when a window or application is being activated or deactivated.">wxActivateEvent</a> </li>
<li><a class="el" href="classwx_bitmap.html" title="This class encapsulates the concept of a platform-dependent bitmap, either monochrome or colour or co...">wxBitmap</a> </li>
<li><a class="el" href="classwx_bitmap_button.html" title="A bitmap button is a control that contains a bitmap.">wxBitmapButton</a> </li>
<li><a class="el" href="classwx_bitmap_data_object.html" title="wxBitmapDataObject is a specialization of wxDataObject for bitmap data.">wxBitmapDataObject</a> </li>
<li>wxBMPHandler </li>
<li><a class="el" href="classwx_box_sizer.html" title="The basic idea behind a box sizer is that windows will most often be laid out in rather simple basic ...">wxBoxSizer</a> </li>
<li><a class="el" href="classwx_brush.html" title="A brush is a drawing tool for filling in areas.">wxBrush</a> </li>
<li><a class="el" href="classwx_busy_info.html" title="This class makes it easy to tell your user that the program is temporarily busy.">wxBusyInfo</a> </li>
<li><a class="el" href="classwx_busy_cursor.html" title="This class makes it easy to tell your user that the program is temporarily busy.">wxBusyCursor</a> </li>
<li><a class="el" href="classwx_button.html" title="A button is a control that contains a text string, and is one of the most common elements of a GUI...">wxButton</a> </li>
<li><a class="el" href="classwx_calculate_layout_event.html" title="This event is sent by wxLayoutAlgorithm to calculate the amount of the remaining client area that the...">wxCalculateLayoutEvent</a> </li>
<li><a class="el" href="classwx_calendar_ctrl.html" title="The calendar control allows the user to pick a date.">wxCalendarCtrl</a> </li>
<li><a class="el" href="classwx_caret.html" title="A caret is a blinking cursor showing the position where the typed text will appear.">wxCaret</a> </li>
<li><a class="el" href="classwx_check_box.html" title="A checkbox is a labelled box which by default is either on (checkmark is visible) or off (no checkmar...">wxCheckBox</a> </li>
<li><a class="el" href="classwx_check_list_box.html" title="A wxCheckListBox is like a wxListBox, but allows items to be checked or unchecked.">wxCheckListBox</a> </li>
<li><a class="el" href="classwx_choice.html" title="A choice item is used to select one of a list of strings.">wxChoice</a> </li>
<li><a class="el" href="classwx_client_d_c.html" title="A wxClientDC must be constructed if an application wishes to paint on the client area of a window fro...">wxClientDC</a> </li>
<li><a class="el" href="classwx_clipboard.html" title="A class for manipulating the clipboard.">wxClipboard</a> </li>
<li><a class="el" href="classwx_close_event.html" title="This event class contains information about window and session close events.">wxCloseEvent</a> </li>
<li><a class="el" href="classwx_colour_data.html" title="This class holds a variety of information related to colour dialogs.">wxColourData</a> </li>
<li><a class="el" href="classwx_colour_dialog.html" title="This class represents the colour chooser dialog.">wxColourDialog</a> </li>
<li><a class="el" href="classwx_colour.html" title="A colour is an object representing a combination of Red, Green, and Blue (RGB) intensity values...">wxColour</a> </li>
<li><a class="el" href="classwx_combo_box.html" title="A combobox is like a combination of an edit control and a listbox.">wxComboBox</a> </li>
<li><a class="el" href="classwx_command_event.html" title="This event class contains information about command events, which originate from a variety of simple ...">wxCommandEvent</a> </li>
<li><a class="el" href="classwx_config_base.html" title="wxConfigBase defines the basic interface of all config classes.">wxConfigBase</a> </li>
<li><a class="el" href="classwx_control.html" title="This is the base class for a control or &quot;widget&quot;.">wxControl</a> </li>
<li><a class="el" href="classwx_cursor.html" title="A cursor is a small bitmap usually used for denoting where the mouse pointer is, with a picture that ...">wxCursor</a> </li>
<li><a class="el" href="classwx_custom_data_object.html" title="wxCustomDataObject is a specialization of wxDataObjectSimple for some application-specific data in ar...">wxCustomDataObject</a> </li>
<li><a class="el" href="classwx_data_format.html" title="A wxDataFormat is an encapsulation of a platform-specific format handle which is used by the system f...">wxDataFormat</a> </li>
<li><a class="el" href="classwx_data_object.html" title="A wxDataObject represents data that can be copied to or from the clipboard, or dragged and dropped...">wxDataObject</a> </li>
<li><a class="el" href="classwx_data_object_composite.html" title="wxDataObjectComposite is the simplest wxDataObject derivation which may be used to support multiple f...">wxDataObjectComposite</a> </li>
<li><a class="el" href="classwx_data_object_simple.html" title="This is the simplest possible implementation of the wxDataObject class.">wxDataObjectSimple</a> </li>
<li><a class="el" href="classwx_date_time.html" title="wxDateTime class represents an absolute moment in time.">wxDateTime</a> </li>
<li><a class="el" href="classwx_date_span.html" title="This class is a &quot;logical time span&quot; and is useful for implementing program logic for such things as...">wxDateSpan</a> </li>
<li><a class="el" href="classwx_d_c.html" title="A wxDC is a &quot;device context&quot; onto which graphics and text can be drawn.">wxDC</a> </li>
<li><a class="el" href="classwx_dialog.html" title="A dialog box is a window with a title bar and sometimes a system menu, which can be moved around the ...">wxDialog</a> </li>
<li><a class="el" href="classwx_dir_dialog.html" title="This class represents the directory chooser dialog.">wxDirDialog</a> </li>
<li><a class="el" href="classwx_drag_image.html" title="This class is used when you wish to drag an object on the screen, and a simple cursor is not enough...">wxDragImage</a> </li>
<li><a class="el" href="classwx_drop_files_event.html" title="This class is used for drop files events, that is, when files have been dropped onto the window...">wxDropFilesEvent</a> </li>
<li><a class="el" href="classwx_drop_source.html" title="This class represents a source for a drag and drop operation.">wxDropSource</a> </li>
<li><a class="el" href="classwx_drop_target.html" title="This class represents a target for a drag and drop operation.">wxDropTarget</a> </li>
<li><a class="el" href="classwx_erase_event.html" title="An erase event is sent when a window&#39;s background needs to be repainted.">wxEraseEvent</a> </li>
<li><a class="el" href="classwx_event.html" title="An event is a structure holding information about an event passed to a callback or member function...">wxEvent</a> </li>
<li><a class="el" href="classwx_evt_handler.html" title="A class that can handle events from the windowing system.">wxEvtHandler</a> </li>
<li><a class="el" href="classwx_file_config.html" title="wxFileConfig implements wxConfigBase interface for storing and retrieving configuration information u...">wxFileConfig</a> </li>
<li><a class="el" href="classwx_file_data_object.html" title="wxFileDataObject is a specialization of wxDataObject for file names.">wxFileDataObject</a> </li>
<li><a class="el" href="classwx_file_dialog.html" title="This class represents the file chooser dialog.">wxFileDialog</a> </li>
<li><a class="el" href="classwx_file_drop_target.html" title="This is a drop target which accepts files (dragged from File Manager or Explorer).">wxFileDropTarget</a> </li>
<li><a class="el" href="classwx_file_system.html" title="This class provides an interface for opening files on different file systems.">wxFileSystem</a> </li>
<li><a class="el" href="classwx_file_system_handler.html" title="Classes derived from wxFileSystemHandler are used to access virtual file systems.">wxFileSystemHandler</a> </li>
<li><a class="el" href="classwx_focus_event.html" title="A focus event is sent when a window&#39;s focus changes.">wxFocusEvent</a> </li>
<li><a class="el" href="classwx_font_data.html" title="This class holds a variety of information related to font dialogs.">wxFontData</a> </li>
<li><a class="el" href="classwx_font_dialog.html" title="This class represents the font chooser dialog.">wxFontDialog</a> </li>
<li><a class="el" href="classwx_font.html" title="A font is an object which determines the appearance of text.">wxFont</a> </li>
<li><a class="el" href="classwx_frame.html" title="A frame is a window whose size and position can (usually) be changed by the user.">wxFrame</a> </li>
<li><a class="el" href="classwx_f_s_file.html" title="This class represents a single file opened by wxFileSystem.">wxFSFile</a> </li>
<li><a class="el" href="classwx_gauge.html" title="A gauge is a horizontal or vertical bar which shows a quantity (often time).">wxGauge</a> </li>
<li>wxGIFHandler </li>
<li><a class="el" href="classwx_g_l_canvas.html" title="wxGLCanvas is a class for displaying OpenGL graphics.">wxGLCanvas</a> </li>
<li><a class="el" href="classwx_html_cell.html" title="Internal data structure.">wxHtmlCell</a> </li>
<li><a class="el" href="classwx_html_container_cell.html" title="The wxHtmlContainerCell class is an implementation of a cell that may contain more cells in it...">wxHtmlContainerCell</a> </li>
<li><a class="el" href="classwx_html_d_c_renderer.html" title="This class can render HTML document into a specified area of a DC.">wxHtmlDCRenderer</a> </li>
<li><a class="el" href="classwx_html_easy_printing.html" title="This class provides very simple interface to printing architecture.">wxHtmlEasyPrinting</a> </li>
<li><a class="el" href="classwx_html_parser.html" title="Classes derived from this handle the generic parsing of HTML documents: it scans the document and div...">wxHtmlParser</a> </li>
<li><a class="el" href="classwx_html_tag_handler.html">wxHtmlTagHandler</a> </li>
<li><a class="el" href="classwx_html_tag.html" title="This class represents a single HTML tag.">wxHtmlTag</a> </li>
<li><a class="el" href="classwx_html_win_parser.html" title="This class is derived from wxHtmlParser and its main goal is to parse HTML input so that it can be di...">wxHtmlWinParser</a> </li>
<li><a class="el" href="classwx_html_printout.html" title="This class serves as printout class for HTML documents.">wxHtmlPrintout</a> </li>
<li><a class="el" href="classwx_html_win_tag_handler.html" title="This is basically wxHtmlTagHandler except that it is extended with protected member m_WParser pointin...">wxHtmlWinTagHandler</a> </li>
<li><a class="el" href="classwx_html_window.html" title="wxHtmlWindow is probably the only class you will directly use unless you want to do something special...">wxHtmlWindow</a> </li>
<li><a class="el" href="classwx_iconize_event.html" title="An event being sent when the frame is iconized (minimized) or restored.">wxIconizeEvent</a> </li>
<li><a class="el" href="classwx_icon.html" title="An icon is a small rectangular bitmap usually used for denoting a minimized application.">wxIcon</a> </li>
<li><a class="el" href="classwx_idle_event.html" title="This class is used for idle events, which are generated when the system becomes idle.">wxIdleEvent</a> </li>
<li><a class="el" href="classwx_image.html" title="This class encapsulates a platform-independent image.">wxImage</a> </li>
<li><a class="el" href="classwx_image_handler.html" title="This is the base class for implementing image file loading/saving, and image creation from data...">wxImageHandler</a> </li>
<li><a class="el" href="classwx_image_list.html" title="A wxImageList contains a list of images, which are stored in an unspecified form.">wxImageList</a> </li>
<li><a class="el" href="classwx_individual_layout_constraint.html">wxIndividualLayoutConstraint</a> </li>
<li><a class="el" href="classwx_init_dialog_event.html" title="A wxInitDialogEvent is sent as a dialog or panel is being initialised.">wxInitDialogEvent</a> </li>
<li><a class="el" href="classwx_input_stream.html" title="wxInputStream is an abstract base class which may not be used directly.">wxInputStream</a> </li>
<li><a class="el" href="classwx_file_system.html">wxInternetFSHandler</a> </li>
<li><a class="el" href="classwx_joystick_event.html" title="This event class contains information about joystick events, particularly events received by windows...">wxJoystickEvent</a> </li>
<li>wxJPEGHandler </li>
<li><a class="el" href="classwx_key_event.html" title="This event class contains information about key press and release events.">wxKeyEvent</a> </li>
<li><a class="el" href="classwx_layout_algorithm.html" title="wxLayoutAlgorithm implements layout of subwindows in MDI or SDI frames.">wxLayoutAlgorithm</a> </li>
<li><a class="el" href="classwx_layout_constraints.html">wxLayoutConstraints</a> </li>
<li><a class="el" href="classwx_list_box.html" title="A listbox is used to select one or more of a list of strings.">wxListBox</a> </li>
<li><a class="el" href="classwx_list_ctrl.html" title="A list control presents lists in a number of formats: list view, report view, icon view and small ico...">wxListCtrl</a> </li>
<li><a class="el" href="classwx_list_event.html" title="A list event holds information about events associated with wxListCtrl objects.">wxListEvent</a> </li>
<li><a class="el" href="classwx_list_item.html" title="This class stores information about a wxListCtrl item or column.">wxListItem</a> </li>
<li><a class="el" href="classwx_mask.html" title="This class encapsulates a monochrome mask bitmap, where the masked area is black and the unmasked are...">wxMask</a> </li>
<li><a class="el" href="classwx_maximize_event.html" title="An event being sent when a top level window is maximized.">wxMaximizeEvent</a> </li>
<li><a class="el" href="classwx_m_d_i_child_frame.html" title="An MDI child frame is a frame that can only exist inside a wxMDIClientWindow, which is itself a child...">wxMDIChildFrame</a> </li>
<li><a class="el" href="classwx_m_d_i_client_window.html" title="An MDI client window is a child of wxMDIParentFrame, and manages zero or more wxMDIChildFrame objects...">wxMDIClientWindow</a> </li>
<li><a class="el" href="classwx_m_d_i_parent_frame.html" title="An MDI (Multiple Document Interface) parent frame is a window which can contain MDI child frames in i...">wxMDIParentFrame</a> </li>
<li><a class="el" href="classwx_memory_d_c.html" title="A memory device context provides a means to draw graphics onto a bitmap.">wxMemoryDC</a> </li>
<li><a class="el" href="classwx_memory_f_s_handler.html" title="This wxFileSystem handler can store arbitrary data in memory stream and make them accessible via an U...">wxMemoryFSHandler</a> </li>
<li><a class="el" href="classwx_menu_bar.html" title="A menu bar is a series of menus accessible from the top of a frame.">wxMenuBar</a> </li>
<li><a class="el" href="classwx_menu_event.html" title="This class is used for a variety of menu-related events.">wxMenuEvent</a> </li>
<li><a class="el" href="classwx_menu_item.html" title="A menu item represents an item in a menu.">wxMenuItem</a> </li>
<li><a class="el" href="classwx_menu.html" title="A menu is a popup (or pull down) list of items, one of which may be selected before the menu goes awa...">wxMenu</a> </li>
<li><a class="el" href="classwx_message_dialog.html" title="This class represents a dialog that shows a single or multi-line message, with a choice of OK...">wxMessageDialog</a> </li>
<li><a class="el" href="classwx_metafile_d_c.html" title="This is a type of device context that allows a metafile object to be created (Windows only)...">wxMetafileDC</a> </li>
<li><a class="el" href="classwx_mini_frame.html" title="A miniframe is a frame with a small title bar.">wxMiniFrame</a> </li>
<li><a class="el" href="classwx_mouse_event.html" title="This event class contains information about the events generated by the mouse: they include mouse but...">wxMouseEvent</a> </li>
<li><a class="el" href="classwx_move_event.html" title="A move event holds information about wxTopLevelWindow move change events.">wxMoveEvent</a> </li>
<li>wxNotebookEvent </li>
<li><a class="el" href="classwx_notebook.html" title="This class represents a notebook control, which manages multiple windows with associated tabs...">wxNotebook</a> </li>
<li><a class="el" href="classwx_page_setup_dialog_data.html" title="This class holds a variety of information related to wxPageSetupDialog.">wxPageSetupDialogData</a> </li>
<li><a class="el" href="classwx_page_setup_dialog.html" title="This class represents the page setup common dialog.">wxPageSetupDialog</a> </li>
<li><a class="el" href="classwx_paint_d_c.html" title="A wxPaintDC must be constructed if an application wishes to paint on the client area of a window from...">wxPaintDC</a> </li>
<li><a class="el" href="classwx_paint_event.html" title="A paint event is sent when a window&#39;s contents needs to be repainted.">wxPaintEvent</a> </li>
<li><a class="el" href="classwx_palette.html" title="A palette is a table that maps pixel values to RGB colours.">wxPalette</a> </li>
<li><a class="el" href="classwx_panel.html" title="A panel is a window on which controls are placed.">wxPanel</a> </li>
<li><a class="el" href="classwx_pen.html" title="A pen is a drawing tool for drawing outlines.">wxPen</a> </li>
<li>wxPNGHandler </li>
<li><a class="el" href="classwx_point.html" title="A wxPoint is a useful data structure for graphics operations.">wxPoint</a> </li>
<li><a class="el" href="classwx_post_script_d_c.html" title="This defines the wxWidgets Encapsulated PostScript device context, which can write PostScript files o...">wxPostScriptDC</a> </li>
<li><a class="el" href="classwx_preview_frame.html" title="This class provides the default method of managing the print preview interface.">wxPreviewFrame</a> </li>
<li><a class="el" href="classwx_print_data.html" title="This class holds a variety of information related to printers and printer device contexts.">wxPrintData</a> </li>
<li><a class="el" href="classwx_print_dialog_data.html" title="This class holds information related to the visual characteristics of wxPrintDialog.">wxPrintDialogData</a> </li>
<li><a class="el" href="classwx_print_dialog.html" title="This class represents the print and print setup common dialogs.">wxPrintDialog</a> </li>
<li><a class="el" href="classwx_printer.html" title="This class represents the Windows or PostScript printer, and is the vehicle through which printing ma...">wxPrinter</a> </li>
<li><a class="el" href="classwx_print_preview.html" title="Objects of this class manage the print preview process.">wxPrintPreview</a> </li>
<li><a class="el" href="classwx_printer_d_c.html" title="A printer device context is specific to MSW and Mac, and allows access to any printer with a Windows ...">wxPrinterDC</a> </li>
<li><a class="el" href="classwx_printout.html" title="This class encapsulates the functionality of printing out an application document.">wxPrintout</a> </li>
<li><a class="el" href="classwx_process.html" title="The objects of this class are used in conjunction with the wxExecute() function.">wxProcess</a> </li>
<li><a class="el" href="classwx_query_layout_info_event.html" title="This event is sent when wxLayoutAlgorithm wishes to get the size, orientation and alignment of a wind...">wxQueryLayoutInfoEvent</a> </li>
<li><a class="el" href="classwx_radio_box.html" title="A radio box item is used to select one of number of mutually exclusive choices.">wxRadioBox</a> </li>
<li><a class="el" href="classwx_radio_button.html" title="A radio button item is a button which usually denotes one of several mutually exclusive options...">wxRadioButton</a> </li>
<li><a class="el" href="classwx_real_point.html" title="A wxRealPoint is a useful data structure for graphics operations.">wxRealPoint</a> </li>
<li><a class="el" href="classwx_rect.html" title="A class for manipulating rectangles.">wxRect</a> </li>
<li><a class="el" href="classwx_region_iterator.html" title="This class is used to iterate through the rectangles in a region, typically when examining the damage...">wxRegionIterator</a> </li>
<li><a class="el" href="classwx_region.html" title="A wxRegion represents a simple or complex region on a device context or window.">wxRegion</a> </li>
<li><a class="el" href="classwx_sash_event.html" title="A sash event is sent when the sash of a wxSashWindow has been dragged by the user.">wxSashEvent</a> </li>
<li><a class="el" href="classwx_sash_layout_window.html" title="wxSashLayoutWindow responds to OnCalculateLayout events generated by wxLayoutAlgorithm.">wxSashLayoutWindow</a> </li>
<li><a class="el" href="classwx_sash_window.html" title="wxSashWindow allows any of its edges to have a sash which can be dragged to resize the window...">wxSashWindow</a> </li>
<li><a class="el" href="classwx_screen_d_c.html" title="A wxScreenDC can be used to paint on the screen.">wxScreenDC</a> </li>
<li><a class="el" href="classwx_scroll_bar.html" title="A wxScrollBar is a control that represents a horizontal or vertical scrollbar.">wxScrollBar</a> </li>
<li><a class="el" href="classwx_scroll_event.html" title="A scroll event holds information about events sent from stand-alone scrollbars (see wxScrollBar) and ...">wxScrollEvent</a> </li>
<li><a class="el" href="group__group__class__miscwnd.html#ga695bec5996cd4d5512d1a01cfdcf96a5" title="Scrolled window derived from wxPanel.">wxScrolledWindow</a> </li>
<li><a class="el" href="classwx_scroll_win_event.html" title="A scroll event holds information about events sent from scrolling windows.">wxScrollWinEvent</a> </li>
<li><a class="el" href="classwx_show_event.html" title="An event being sent when the window is shown or hidden.">wxShowEvent</a> </li>
<li><a class="el" href="classwx_single_choice_dialog.html" title="This class represents a dialog that shows a list of strings, and allows the user to select one...">wxSingleChoiceDialog</a> </li>
<li><a class="el" href="classwx_size_event.html" title="A size event holds information about size change events of wxWindow.">wxSizeEvent</a> </li>
<li><a class="el" href="classwx_size.html" title="A wxSize is a useful data structure for graphics operations.">wxSize</a> </li>
<li><a class="el" href="classwx_sizer.html" title="wxSizer is the abstract base class used for laying out subwindows in a window.">wxSizer</a> </li>
<li><a class="el" href="classwx_sizer_item.html" title="The wxSizerItem class is used to track the position, size and other attributes of each item managed b...">wxSizerItem</a> </li>
<li><a class="el" href="classwx_slider.html" title="A slider is a control with a handle which can be pulled back and forth to change the value...">wxSlider</a> </li>
<li><a class="el" href="classwx_spin_button.html" title="A wxSpinButton has two small up and down (or left and right) arrow buttons.">wxSpinButton</a> </li>
<li><a class="el" href="classwx_spin_event.html" title="This event class is used for the events generated by wxSpinButton and wxSpinCtrl.">wxSpinEvent</a> </li>
<li><a class="el" href="classwx_splitter_window.html" title="This class manages up to two subwindows.">wxSplitterWindow</a> </li>
<li><a class="el" href="classwx_static_bitmap.html" title="A static bitmap control displays a bitmap.">wxStaticBitmap</a> </li>
<li><a class="el" href="classwx_static_box.html" title="A static box is a rectangle drawn around other windows to denote a logical grouping of items...">wxStaticBox</a> </li>
<li><a class="el" href="classwx_static_box_sizer.html" title="wxStaticBoxSizer is a sizer derived from wxBoxSizer but adds a static box around the sizer...">wxStaticBoxSizer</a> </li>
<li><a class="el" href="classwx_static_line.html" title="A static line is just a line which may be used in a dialog to separate the groups of controls...">wxStaticLine</a> </li>
<li><a class="el" href="classwx_static_text.html" title="A static text control displays one or more lines of read-only text.">wxStaticText</a> </li>
<li><a class="el" href="classwx_status_bar.html" title="A status bar is a narrow window that can be placed along the bottom of a frame to give small amounts ...">wxStatusBar</a> </li>
<li><a class="el" href="classwx_sys_colour_changed_event.html" title="This class is used for system colour change events, which are generated when the user changes the col...">wxSysColourChangedEvent</a> </li>
<li><a class="el" href="classwx_task_bar_icon.html" title="This class represents a taskbar icon.">wxTaskBarIcon</a> </li>
<li><a class="el" href="classwx_text_ctrl.html" title="A text control allows text to be displayed and edited.">wxTextCtrl</a> </li>
<li><a class="el" href="classwx_text_data_object.html" title="wxTextDataObject is a specialization of wxDataObjectSimple for text data.">wxTextDataObject</a> </li>
<li><a class="el" href="classwx_text_drop_target.html" title="A predefined drop target for dealing with text data.">wxTextDropTarget</a> </li>
<li><a class="el" href="classwx_text_entry_dialog.html" title="This class represents a dialog that requests a one-line text string from the user.">wxTextEntryDialog</a> </li>
<li><a class="el" href="classwx_timer.html" title="The wxTimer class allows you to execute code at specified intervals.">wxTimer</a> </li>
<li><a class="el" href="classwx_timer_event.html" title="wxTimerEvent object is passed to the event handler of timer events (see wxTimer::SetOwner).">wxTimerEvent</a> </li>
<li><a class="el" href="classwx_time_span.html" title="wxTimeSpan class represents a time interval.">wxTimeSpan</a> </li>
<li><a class="el" href="classwx_tip_provider.html" title="This is the class used together with wxShowTip() function.">wxTipProvider</a> </li>
<li>wxToolBarTool </li>
<li><a class="el" href="classwx_tool_bar.html" title="A toolbar is a bar of buttons and/or other controls usually placed below the menu bar in a wxFrame...">wxToolBar</a> </li>
<li><a class="el" href="classwx_tool_tip.html" title="This class holds information about a tooltip associated with a window (see wxWindow::SetToolTip()).">wxToolTip</a> </li>
<li><a class="el" href="classwx_tree_ctrl.html" title="A tree control presents information as a hierarchy, with items that may be expanded to show further i...">wxTreeCtrl</a> </li>
<li><a class="el" href="classwx_tree_event.html" title="A tree event holds information about events associated with wxTreeCtrl objects.">wxTreeEvent</a> </li>
<li><a class="el" href="classwx_tree_item_data.html" title="wxTreeItemData is some (arbitrary) user class associated with some item.">wxTreeItemData</a> </li>
<li><a class="el" href="classwx_tree_item_id.html" title="An opaque reference to a tree item.">wxTreeItemId</a> </li>
<li><a class="el" href="classwx_update_u_i_event.html" title="This class is used for pseudo-events which are called by wxWidgets to give an application the chance ...">wxUpdateUIEvent</a> </li>
<li><a class="el" href="classwx_validator.html" title="wxValidator is the base class for a family of validator classes that mediate between a class of contr...">wxValidator</a> </li>
<li><a class="el" href="classwx_window_d_c.html" title="A wxWindowDC must be constructed if an application wishes to paint on the whole area of a window (cli...">wxWindowDC</a> </li>
<li><a class="el" href="classwx_window.html" title="wxWindow is the base class for all windows and represents any visible object on screen.">wxWindow</a> </li>
<li><a class="el" href="classwx_file_system.html">wxZipFSHandler</a></li>
</ul>
<h1><a class="anchor" id="overview_python_help"></a>
Where to Go for Help</h1>
<p>Since wxPython is a blending of multiple technologies, help comes from multiple sources. See <a href="http://wxpython.org/">http://wxpython.org/</a> for details on various sources of help, but probably the best source is the wxPython-users mail list. You can view the archive or subscribe by going to <a href="http://wxpython.org/maillist.php">http://wxpython.org/maillist.php</a></p>
<p>Or you can send mail directly to the list using this address: <a href="#" onclick="location.href='mai'+'lto:'+'wxp'+'yt'+'hon'+'-u'+'ser'+'s@'+'lis'+'ts'+'.wx'+'wi'+'dge'+'ts'+'.or'+'g'; return false;">wxpyt<span style="display: none;">.nosp@m.</span>hon-<span style="display: none;">.nosp@m.</span>users<span style="display: none;">.nosp@m.</span>@lis<span style="display: none;">.nosp@m.</span>ts.wx<span style="display: none;">.nosp@m.</span>widg<span style="display: none;">.nosp@m.</span>ets.o<span style="display: none;">.nosp@m.</span>rg</a> </p>
</div></div><!-- contents -->

<address class="footer">
	<small>
		Generated on Thu Nov 27 2014 13:46:42 for wxWidgets by <a href="http://www.doxygen.org/index.html" target="_new">Doxygen</a> 1.8.2
	</small>
</address>
<script src="wxwidgets.js" type="text/javascript"></script>
</div><!-- #page_container -->
</body>
</html>