regen ReST docs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42102 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -3,18 +3,300 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
|
||||
<title>Building wxPython 2.6 for Development and Testing</title>
|
||||
<link rel="stylesheet" href="default.css" type="text/css" />
|
||||
<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
|
||||
<title>Building wxPython 2.7 for Development and Testing</title>
|
||||
<style type="text/css">
|
||||
|
||||
/*
|
||||
:Author: David Goodger
|
||||
:Contact: goodger@users.sourceforge.net
|
||||
:Date: $Date$
|
||||
:Revision: $Revision$
|
||||
:Copyright: This stylesheet has been placed in the public domain.
|
||||
|
||||
Default cascading style sheet for the HTML output of Docutils.
|
||||
|
||||
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
|
||||
customize this style sheet.
|
||||
*/
|
||||
|
||||
/* used to remove borders from tables and images */
|
||||
.borderless, table.borderless td, table.borderless th {
|
||||
border: 0 }
|
||||
|
||||
table.borderless td, table.borderless th {
|
||||
/* Override padding for "table.docutils td" with "! important".
|
||||
The right padding separates the table cells. */
|
||||
padding: 0 0.5em 0 0 ! important }
|
||||
|
||||
.first {
|
||||
/* Override more specific margin styles with "! important". */
|
||||
margin-top: 0 ! important }
|
||||
|
||||
.last, .with-subtitle {
|
||||
margin-bottom: 0 ! important }
|
||||
|
||||
.hidden {
|
||||
display: none }
|
||||
|
||||
a.toc-backref {
|
||||
text-decoration: none ;
|
||||
color: black }
|
||||
|
||||
blockquote.epigraph {
|
||||
margin: 2em 5em ; }
|
||||
|
||||
dl.docutils dd {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
||||
dl.docutils dt {
|
||||
font-weight: bold }
|
||||
*/
|
||||
|
||||
div.abstract {
|
||||
margin: 2em 5em }
|
||||
|
||||
div.abstract p.topic-title {
|
||||
font-weight: bold ;
|
||||
text-align: center }
|
||||
|
||||
div.admonition, 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.admonition p.admonition-title, 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.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 }
|
||||
|
||||
/* Uncomment (and remove this text!) to get reduced vertical space in
|
||||
compound paragraphs.
|
||||
div.compound .compound-first, div.compound .compound-middle {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
div.compound .compound-last, div.compound .compound-middle {
|
||||
margin-top: 0.5em }
|
||||
*/
|
||||
|
||||
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 ;
|
||||
margin-right: 2em }
|
||||
|
||||
div.footer, div.header {
|
||||
clear: both;
|
||||
font-size: smaller }
|
||||
|
||||
div.line-block {
|
||||
display: block ;
|
||||
margin-top: 1em ;
|
||||
margin-bottom: 1em }
|
||||
|
||||
div.line-block div.line-block {
|
||||
margin-top: 0 ;
|
||||
margin-bottom: 0 ;
|
||||
margin-left: 1.5em }
|
||||
|
||||
div.sidebar {
|
||||
margin-left: 1em ;
|
||||
border: medium outset ;
|
||||
padding: 1em ;
|
||||
background-color: #ffffee ;
|
||||
width: 40% ;
|
||||
float: right ;
|
||||
clear: right }
|
||||
|
||||
div.sidebar p.rubric {
|
||||
font-family: sans-serif ;
|
||||
font-size: medium }
|
||||
|
||||
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.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
||||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
||||
margin-top: 0.4em }
|
||||
|
||||
h1.title {
|
||||
text-align: center }
|
||||
|
||||
h2.subtitle {
|
||||
text-align: center }
|
||||
|
||||
hr.docutils {
|
||||
width: 75% }
|
||||
|
||||
img.align-left {
|
||||
clear: left }
|
||||
|
||||
img.align-right {
|
||||
clear: right }
|
||||
|
||||
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.attribution {
|
||||
text-align: right ;
|
||||
margin-left: 50% }
|
||||
|
||||
p.caption {
|
||||
font-style: italic }
|
||||
|
||||
p.credits {
|
||||
font-style: italic ;
|
||||
font-size: smaller }
|
||||
|
||||
p.label {
|
||||
white-space: nowrap }
|
||||
|
||||
p.rubric {
|
||||
font-weight: bold ;
|
||||
font-size: larger ;
|
||||
color: maroon ;
|
||||
text-align: center }
|
||||
|
||||
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.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.pre {
|
||||
white-space: pre }
|
||||
|
||||
span.problematic {
|
||||
color: red }
|
||||
|
||||
span.section-subtitle {
|
||||
/* font-size relative to parent (h1..h6 element) */
|
||||
font-size: 80% }
|
||||
|
||||
table.citation {
|
||||
border-left: solid 1px gray;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docinfo {
|
||||
margin: 2em 4em }
|
||||
|
||||
table.docutils {
|
||||
margin-top: 0.5em ;
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
table.footnote {
|
||||
border-left: solid 1px black;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docutils td, table.docutils th,
|
||||
table.docinfo td, table.docinfo th {
|
||||
padding-left: 0.5em ;
|
||||
padding-right: 0.5em ;
|
||||
vertical-align: top }
|
||||
|
||||
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
||||
font-weight: bold ;
|
||||
text-align: left ;
|
||||
white-space: nowrap ;
|
||||
padding-left: 0 }
|
||||
|
||||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
||||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
||||
font-size: 100% }
|
||||
|
||||
tt.docutils {
|
||||
background-color: #eeeeee }
|
||||
|
||||
ul.auto-toc {
|
||||
list-style-type: none }
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="document" id="building-wxpython-2-6-for-development-and-testing">
|
||||
<h1 class="title">Building wxPython 2.6 for Development and Testing</h1>
|
||||
<div class="document" id="building-wxpython-2-7-for-development-and-testing">
|
||||
<h1 class="title">Building wxPython 2.7 for Development and Testing</h1>
|
||||
<p>This file describes how I build wxWidgets and wxPython while doing
|
||||
development and testing, and is meant to help other people that want
|
||||
to do the same thing. I'll assume that you are using either a CVS
|
||||
snapshot from <a class="reference" href="http://wxWidgets.org/snapshots/">http://wxWidgets.org/snapshots/</a>, a checkout from CVS, or
|
||||
one of the released wxPython-src-2.6.* tarballs. I'll also assume that
|
||||
one of the released wxPython-src-2.7.* tarballs. I'll also assume that
|
||||
you know your way around your system, the compiler, etc. and most
|
||||
importantly, that you know what you are doing! ;-)</p>
|
||||
<p>If you want to also install the version of wxPython you build to be in
|
||||
@@ -28,14 +310,14 @@ may already have installed.</p>
|
||||
<p>If you want to make changes to any of the <tt class="docutils literal"><span class="pre">*.i</span></tt> files, (SWIG
|
||||
interface definition files,) or to regenerate the extension sources or
|
||||
renamer modules, then you will need an up to date version of SWIG,
|
||||
plus some patches. Get the sources for version 1.3.24, and then apply
|
||||
plus some patches. Get the sources for version 1.3.29, and then apply
|
||||
the patches in wxPython/SWIG and then build SWIG like normal. See the
|
||||
README.txt in the wxPython/SWIG dir for details about each patch and
|
||||
also info about those that may already have been applied to the SWIG
|
||||
sources. If you install this build of SWIG to a location that is not
|
||||
on the PATH (so it doesn't interfere with an existing SWIG install for
|
||||
example) then you can set a setup.py command-line variable named SWIG
|
||||
to be the full path name of the executable and the wxPython build will
|
||||
example) then you can use a setup.py command-line option named SWIG
|
||||
set to the full path name of the executable and the wxPython build will
|
||||
use it. See below for an example.</p>
|
||||
<p>In the text below I'll use WXDIR with environment variable syntax
|
||||
(either $WXDIR or %WXDIR%) to refer to the top level directory where
|
||||
@@ -53,8 +335,8 @@ installed from one of the standard wxWidgets installers. With the
|
||||
the APIs are allowed to change) there are often significant
|
||||
differences between the W.X.Y release of wxWidgets and the W.X.Y.Z
|
||||
release of wxPython.</p>
|
||||
<div class="section" id="building-on-unix-like-systems-e-g-linux-and-os-x">
|
||||
<h1><a name="building-on-unix-like-systems-e-g-linux-and-os-x">Building on Unix-like Systems (e.g. Linux and OS X)</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="building-on-unix-like-systems-e-g-linux-and-os-x" name="building-on-unix-like-systems-e-g-linux-and-os-x">Building on Unix-like Systems (e.g. Linux and OS X)</a></h1>
|
||||
<p>These platforms are built almost the same way while in development
|
||||
so I'll combine the descriptions about their build process here.
|
||||
First we will build wxWidgets and install it to an out of the way
|
||||
@@ -71,12 +353,13 @@ before:</p>
|
||||
cd $WXDIR
|
||||
mkdir bld
|
||||
cd bld
|
||||
../configure --prefix=/opt/wx/2.6 \
|
||||
../configure --prefix=/opt/wx/2.7 \
|
||||
--with-gtk \
|
||||
--with-gnomeprint \
|
||||
--with-opengl \
|
||||
--enable-debug \
|
||||
--enable-geometry \
|
||||
--enable-graphics_ctx \
|
||||
--enable-sound --with-sdl \
|
||||
--enable-mediactrl \
|
||||
--enable-display \
|
||||
@@ -84,6 +367,15 @@ cd bld
|
||||
</pre>
|
||||
<p>On OS X of course you'll want to use --with-mac instead of
|
||||
--with-gtk and --with-gnomeprint.</p>
|
||||
<p>Notice that above I used a prefix option of "/opt/wx/2.7". You can
|
||||
use whatever path you want, such as a path in your HOME dir or even
|
||||
one of the standard prefix paths such as /usr or /usr/local if you
|
||||
like, but using /opt this way lets me easily have multiple versions
|
||||
and ports of wxWidgets "installed" and makes it easy to switch
|
||||
between them, without impacting any versions of wxWidgets that may
|
||||
have been installed via an RPM or whatever. For the rest of the
|
||||
steps below be sure to also substitute "/opt/wx/2.7" with whatever
|
||||
prefix you choose for your build.</p>
|
||||
<p><strong>NOTE</strong>: Due to a recent change there is currently a dependency
|
||||
problem in the multilib builds of wxWidgets on OSX, so I have
|
||||
switched to using a monolithic build. That means that all of the
|
||||
@@ -101,23 +393,14 @@ it by changing the --with-gtk flag to specify it like this:</p>
|
||||
--with-gtk=1 \
|
||||
</pre>
|
||||
<p>To make the wxWidgets build be unicode enabled (strongly
|
||||
recommended if you are building with GTK2) then add the following.
|
||||
When wxPython is unicode enabled then all strings that are passed
|
||||
to wx functions and methods will first be converted to unicode
|
||||
objects, and any 'strings' returned from wx functions and methods
|
||||
will actually be unicode objects.:</p>
|
||||
recommended unless you are building with GTK1) then add the
|
||||
following flag. When wxPython is unicode enabled then all strings
|
||||
that are passed to wx functions and methods will first be converted
|
||||
to unicode objects, and any 'strings' returned from wx functions
|
||||
and methods will actually be unicode objects.:</p>
|
||||
<pre class="literal-block">
|
||||
--enable-unicode \
|
||||
</pre>
|
||||
<p>Notice that I used a prefix of /opt/wx/2.6. You can use whatever
|
||||
path you want, such as a path in your HOME dir or even one of the
|
||||
standard prefix paths such as /usr or /usr/local if you like, but
|
||||
using /opt this way lets me easily have multiple versions and ports
|
||||
of wxWidgets "installed" and makes it easy to switch between them,
|
||||
without impacting any versions of wxWidgets that may have been
|
||||
installed via an RPM or whatever. For the rest of the steps below
|
||||
be sure to also substitute "/opt/wx/2.6" with whatever prefix you
|
||||
choose for your build.</p>
|
||||
<p>If you want to use the image and zlib libraries included with
|
||||
wxWidgets instead of those already installed on your system, (for
|
||||
example, to reduce dependencies on 3rd party libraries) then you
|
||||
@@ -130,16 +413,16 @@ can add these flags to the configure command:</p>
|
||||
</pre>
|
||||
</li>
|
||||
<li><p class="first">To build and install wxWidgets you could just use the "make"
|
||||
command but there are other libraries besides the main wxWidgets
|
||||
libs that also need to be built so again I make a script to do it
|
||||
all for me so I don't forget anything. This time it is called
|
||||
".make" (I use the leading "." so when I do <tt class="docutils literal"><span class="pre">rm</span> <span class="pre">-r</span> <span class="pre">*</span></tt> in my build
|
||||
dir I don't lose my scripts too.) This is what it looks like:</p>
|
||||
command but there are a couple other libraries besides the main
|
||||
wxWidgets libs that also need to be built so again I make a script
|
||||
to do it all for me so I don't forget anything. This time it is
|
||||
called ".make" (I use the leading "." so when I do <tt class="docutils literal"><span class="pre">rm</span> <span class="pre">-r</span> <span class="pre">*</span></tt> in
|
||||
my build dir I don't lose my scripts too.) This is what it looks
|
||||
like:</p>
|
||||
<pre class="literal-block">
|
||||
make $* \
|
||||
&& make -C contrib/src/animate $* \
|
||||
&& make -C contrib/src/gizmos $* \
|
||||
&& make -C contrib/src/stc $*
|
||||
&& make -C contrib/src/stc $*
|
||||
</pre>
|
||||
<p>So you just use .make as if it where make, but don't forget to set
|
||||
the execute bit on .make first!:</p>
|
||||
@@ -148,16 +431,16 @@ the execute bit on .make first!:</p>
|
||||
.make install
|
||||
</pre>
|
||||
<p>When it's done you should have an installed set of files under
|
||||
/opt/wx/2.6 containing just wxWidgets. Now to use this version of
|
||||
wxWidgets you just need to add /opt/wx/2.6/bin to the PATH and set
|
||||
LD_LIBRARY_PATH (or DYLD_LIBRARY_PATH on OS X) to /opt/wx/2.6/lib.</p>
|
||||
/opt/wx/2.7 containing just wxWidgets. Now to use this version of
|
||||
wxWidgets you just need to add /opt/wx/2.7/bin to the PATH and set
|
||||
LD_LIBRARY_PATH (or DYLD_LIBRARY_PATH on OS X) to /opt/wx/2.7/lib.</p>
|
||||
</li>
|
||||
<li><p class="first">I also have a script to help me build wxPython and it is checked in
|
||||
to the CVS as wxWidgets/wxPython/b, but you probably don't want to
|
||||
use it as it's very cryptic and expects that you want to run SWIG,
|
||||
so if you don't have the latest patched up version of SWIG then
|
||||
you'll probably get stuck. So I'll just give the raw commands
|
||||
instead.</p>
|
||||
you'll probably get stuck. So in this document I'll just give the
|
||||
raw commands instead.</p>
|
||||
<p>We're not going to install the development version of wxPython with
|
||||
these commands, so it won't impact your already installed version
|
||||
of the latest release. You'll be able test with this version when
|
||||
@@ -167,33 +450,33 @@ INSTALL.txt.</p>
|
||||
<p>If you have more than one version of Python on your system then be
|
||||
sure to use the version of Python that you want to use when running
|
||||
wxPython programs to run the setup.py commands below. I'll be
|
||||
using python2.3.</p>
|
||||
<p>Make sure that the first wx-config found on the PATH is the one you
|
||||
installed above, and then change to the $WXDIR/wxPython dir and
|
||||
run the this command:</p>
|
||||
using python2.5.</p>
|
||||
<p>Make sure that the first wx-config found on the PATH is the one
|
||||
belonging to the wxWidgets that you installed above, and then
|
||||
change to the $WXDIR/wxPython dir and run the this command:</p>
|
||||
<pre class="literal-block">
|
||||
cd $WXDIR/wxPython
|
||||
python2.3 setup.py build_ext --inplace --debug
|
||||
python2.5 setup.py build_ext --inplace --debug
|
||||
</pre>
|
||||
<p>If your new wx-config script is not on the PATH, or there is some
|
||||
other version of it found first, then you can add this to the
|
||||
command line to ensure your new one is used instead:</p>
|
||||
<pre class="literal-block">
|
||||
WX_CONFIG=/opt/wx/2.6/bin/wx-config
|
||||
WX_CONFIG=/opt/wx/2.7/bin/wx-config
|
||||
</pre>
|
||||
<p>By default setup.py will assume that you built wxWidgets to use
|
||||
GTK2. If you built wxWidgets to use GTK 1.2.x then you should add
|
||||
this flag to the command-line:</p>
|
||||
<pre class="literal-block">
|
||||
WXPORT=gtk
|
||||
WXPORT=gtk
|
||||
</pre>
|
||||
<p>If you would like to do a Unicode enabled build (all strings sent
|
||||
to or retruned from wx functions are Unicode objects) and your
|
||||
wxWidgets was built with unicode enabled then add this flag:</p>
|
||||
<p>Setup.py will assume by default that you are using a unicode build
|
||||
of wxWidgets. If not then you can use this flag:</p>
|
||||
<pre class="literal-block">
|
||||
UNICODE=1
|
||||
UNICODE=0
|
||||
</pre>
|
||||
<p>If you are wanting to have the source files regenerated with swig,
|
||||
(only neccessary if you make modifications to the <tt class="docutils literal"><span class="pre">*.i</span></tt> files,)
|
||||
then you need to turn on the USE_SWIG flag and optionally tell it
|
||||
where to find the new swig executable, so add these flags:</p>
|
||||
<pre class="literal-block">
|
||||
@@ -203,28 +486,28 @@ USE_SWIG=1 SWIG=/opt/swig/bin/swig
|
||||
being undeclared, or something similar then you can add
|
||||
BUILD_GLCANVAS=0 to the setup.py command line to disable the
|
||||
building of the glcanvas module.</p>
|
||||
<p>When the setup.py command is done you should have fully populated
|
||||
wxPython and wx packages locally in $WXDIR/wxPython/wxPython and
|
||||
$WXDIR/wxPython/wx, with all the extension modules (<tt class="docutils literal"><span class="pre">*.so</span></tt> files)
|
||||
located in the wx package.</p>
|
||||
<p>When the setup.py command is done you should have a fully populated
|
||||
(but uninstalled) wx package located in your $WXDIR/wxPython/wx
|
||||
directory.</p>
|
||||
</li>
|
||||
<li><p class="first">To run code with the development version of wxPython, just set the
|
||||
PYTHONPATH to the wxPython dir located in the source tree. For
|
||||
example:</p>
|
||||
<pre class="literal-block">
|
||||
export LD_LIBRARY_PATH=/opt/wx/2.6/lib
|
||||
export LD_LIBRARY_PATH=/opt/wx/2.7/lib
|
||||
export PYTHONPATH=$WXDIR/wxPython
|
||||
cd $WXDIR/wxPython/demo
|
||||
python2.3 demo.py
|
||||
python2.5 demo.py
|
||||
</pre>
|
||||
<p>OS X NOTE: You need to use "pythonw" on the command line to run
|
||||
wxPython applications. This version of the Python executable is
|
||||
part of the Python Framework and is allowed to interact with the
|
||||
display. You can also double click on a .py or a .pyw file from
|
||||
the finder (assuming that the PythonLauncher app is associated with
|
||||
these file extensions) and it will launch the Framework version of
|
||||
Python for you. For information about creating Applicaiton Bundles
|
||||
of your wxPython apps please see the wiki and the mail lists.</p>
|
||||
<p>OS X NOTE: Depending on your version of OS X and Python you may
|
||||
need to use "pythonw" on the command line to run wxPython
|
||||
applications. This version of the Python executable is part of the
|
||||
Python Framework and is allowed to interact with the display. You
|
||||
can also double click on a .py or a .pyw file from the finder
|
||||
(assuming that the PythonLauncher app is associated with these file
|
||||
extensions) and it will launch the Framework version of Python for
|
||||
you. For information about creating Applicaiton Bundles of your
|
||||
wxPython apps please see the wiki and the mail lists.</p>
|
||||
<p>SOLARIS NOTE: If you get unresolved symbol errors when importing
|
||||
wxPython and you are running on Solaris and building with gcc, then
|
||||
you may be able to work around the problem by uncommenting a bit of
|
||||
@@ -234,27 +517,28 @@ does not automatically add libgcc to the link step.</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="section" id="building-on-windows">
|
||||
<h1><a name="building-on-windows">Building on Windows</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="building-on-windows" name="building-on-windows">Building on Windows</a></h1>
|
||||
<p>The Windows builds currently require the use of Microsoft Visual C++.
|
||||
Theoretically, other compilers (such as mingw32 or the Borland
|
||||
compilers) can also be used but I've never done the work to make that
|
||||
happen. If you want to try that then first you'll want to find out if
|
||||
there are any tricks that have to be done to make Python extension
|
||||
modules using that compiler, and then make a few changes to setup.py
|
||||
to accommodate that. (And send the patches to me.) If you plan on
|
||||
using VisualStudio.Net (a.k.a. MSVC 7.1) keep in mind that you'll also
|
||||
have to build Python and any other extension modules that you use with
|
||||
that compiler because a different version of the C runtime library is
|
||||
used. The Python executable that comes from PythonLabs and the
|
||||
wxPython extensions that I distribute are built with MSVC 6 with all
|
||||
the Service Packs applied. This policy will change with Python 2.4
|
||||
and MSVC 7.1 will be used starting with that version.</p>
|
||||
to accommodate that. (And send the patches to me.)</p>
|
||||
<p>The standard Python 2.3 and earlier are built with MS Visual C 6.0 and
|
||||
so you must also build with MSVC 6 in order to be used with the stock
|
||||
python.exe. If you woudl rather use a different version of
|
||||
VisualStudio keep in mind that you'll also have to build Python and
|
||||
any other extension modules that you use with that compiler because a
|
||||
different version of the C runtime library is used. The stock Python
|
||||
2.4 and 2.5 executables are built with MSVC 7.1, and the same rules
|
||||
apply to it.</p>
|
||||
<p>If you want to build a debuggable version of wxWidgets and wxPython you
|
||||
will need to have also built a debug version of Python and any other
|
||||
extension modules you need to use. You can tell if you have them
|
||||
already if there is a _d in the file names, for example python_d.exe
|
||||
or python23_d.dll. If you don't need to trace through the C/C++ parts
|
||||
or python25_d.dll. If you don't need to trace through the C/C++ parts
|
||||
of the code with the debugger then building the normal (or hybrid)
|
||||
version is fine, and you can use the regular python executables with
|
||||
it.</p>
|
||||
@@ -277,7 +561,7 @@ differently.</p>
|
||||
<p>The *.btm files are for 4NT and the others are for bash. They are:</p>
|
||||
<pre class="literal-block">
|
||||
.make/.make.btm Builds the main lib and the needed contribs
|
||||
.mymake/.mymake.btm Builds just one lib, use by .make
|
||||
.mymake/.mymake.btm Builds just one lib, used by .make
|
||||
.makesetup.mk A makefile that will copy and edit setup.h
|
||||
as needed for the different types of builds
|
||||
</pre>
|
||||
@@ -298,20 +582,18 @@ copy setup0.h setup.h
|
||||
</li>
|
||||
<li><p class="first">Edit %WXDIR%\include\wx\msw\setup.h and change a few settings:</p>
|
||||
<pre class="literal-block">
|
||||
wxDIALOG_UNIT_COMPATIBILITY 0
|
||||
wxUSE_DEBUG_CONTEXT 1
|
||||
wxUSE_MEMORY_TRACING 1
|
||||
wxUSE_DEBUGREPORT 0
|
||||
wxUSE_EXCEPTIONS 0
|
||||
wxUSE_DIALUP_MANAGER 0
|
||||
wxUSE_GRAPHICS_CONTEXT 1
|
||||
wxUSE_GLCANVAS 1
|
||||
wxUSE_POSTSCRIPT 1
|
||||
wxUSE_AFM_FOR_POSTSCRIPT 0
|
||||
wxUSE_DISPLAY 1
|
||||
wxUSE_DEBUGREPORT 0
|
||||
wxUSE_DIB_FOR_BITMAP 1
|
||||
</pre>
|
||||
<p>If you are using my build scripts then a few more settings will be
|
||||
changed and then a copy of setup.h is placed in a subdir of
|
||||
%WXWIN%\libvc_dll. If you are doing it by hand and making a
|
||||
UNICODE build, then also change these:</p>
|
||||
changed automatically and then a copy of setup.h is placed in a
|
||||
subdir of %WXWIN%\libvc_dll. If you are doing it by hand and
|
||||
making a UNICODE build, then also change these:</p>
|
||||
<pre class="literal-block">
|
||||
wxUSE_UNICODE 1
|
||||
wxUSE_UNICODE_MSLU 1
|
||||
@@ -357,11 +639,11 @@ clean up the build:</p>
|
||||
executing nmake with a bunch of extra command line parameters.
|
||||
The base set are:</p>
|
||||
<pre class="literal-block">
|
||||
nmake -f makefile.vc OFFICIAL_BUILD=1 SHARED=1 MONOLITHIC=1 USE_OPENGL=1
|
||||
nmake -f makefile.vc OFFICIAL_BUILD=1 SHARED=1 MONOLITHIC=0 USE_OPENGL=1 USE_GDIPLUS=1
|
||||
</pre>
|
||||
<p>If doing a debug build then add:</p>
|
||||
<pre class="literal-block">
|
||||
BUILD=debug
|
||||
BUILD=debug
|
||||
</pre>
|
||||
<p>otherwise add these:</p>
|
||||
<pre class="literal-block">
|
||||
@@ -372,14 +654,7 @@ DEBUG_FLAG=1 CXXFLAGS=/D__NO_VC_CRTDBG__ WXDEBUGFLAG=h BUILD=release
|
||||
UNICODE=1 MSLU=1
|
||||
</pre>
|
||||
<p>Now, from the %WXDIR%\build\msw directory run nmake with your
|
||||
selection of command-line flags as described above. Repeat this
|
||||
same command from the following directories in order to build the
|
||||
contrib libraries:</p>
|
||||
<pre class="literal-block">
|
||||
%WXDIR%\contrib\build\animate
|
||||
%WXDIR%\contrib\build\gizmos
|
||||
%WXDIR%\contrib\build\stc
|
||||
</pre>
|
||||
selection of command-line flags as described above.</p>
|
||||
</li>
|
||||
<li><p class="first">When that is all done it will have built the main wxWidgets DLLs
|
||||
and also some of the contribs DLLs. There should be a ton of DLLs
|
||||
@@ -398,13 +673,14 @@ build for (if you have more than one on your system) and to match
|
||||
the MONOLITHIC flag with how you built wxWidgets:</p>
|
||||
<pre class="literal-block">
|
||||
cd %WXDIR%\wxPython
|
||||
python setup.py build_ext --inplace MONOLITHIC=1
|
||||
python setup.py build_ext --inplace MONOLITHIC=0
|
||||
</pre>
|
||||
<p>If you are wanting to have the source files regenerated with swig,
|
||||
(only neccessary if you make modifications to the <tt class="docutils literal"><span class="pre">*.i</span></tt> files,)
|
||||
then you need to turn on the USE_SWIG flag and optionally tell it
|
||||
where to find the new swig executable, so add these flags:</p>
|
||||
<pre class="literal-block">
|
||||
USE_SWIG=1 SWIG=e:\projects\SWIG-cvs\swig.exe
|
||||
USE_SWIG=1 SWIG=e:\\projects\\SWIG-1.2.29\\swig.exe
|
||||
</pre>
|
||||
<p>If you built a Unicode version of wxWidgets and want to also build
|
||||
the Unicode version of wxPython then add this flag:</p>
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -3,7 +3,7 @@ Recent Changes for wxPython
|
||||
|
||||
2.7.1.1
|
||||
-------
|
||||
*
|
||||
* 18-Oct-2006
|
||||
|
||||
The following deprecated items have been removed:
|
||||
|
||||
|
@@ -3,20 +3,302 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
|
||||
<title>Installing wxPython 2.6 from Source</title>
|
||||
<link rel="stylesheet" href="default.css" type="text/css" />
|
||||
<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
|
||||
<title>Installing wxPython 2.7 from Source</title>
|
||||
<style type="text/css">
|
||||
|
||||
/*
|
||||
:Author: David Goodger
|
||||
:Contact: goodger@users.sourceforge.net
|
||||
:Date: $Date$
|
||||
:Revision: $Revision$
|
||||
:Copyright: This stylesheet has been placed in the public domain.
|
||||
|
||||
Default cascading style sheet for the HTML output of Docutils.
|
||||
|
||||
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
|
||||
customize this style sheet.
|
||||
*/
|
||||
|
||||
/* used to remove borders from tables and images */
|
||||
.borderless, table.borderless td, table.borderless th {
|
||||
border: 0 }
|
||||
|
||||
table.borderless td, table.borderless th {
|
||||
/* Override padding for "table.docutils td" with "! important".
|
||||
The right padding separates the table cells. */
|
||||
padding: 0 0.5em 0 0 ! important }
|
||||
|
||||
.first {
|
||||
/* Override more specific margin styles with "! important". */
|
||||
margin-top: 0 ! important }
|
||||
|
||||
.last, .with-subtitle {
|
||||
margin-bottom: 0 ! important }
|
||||
|
||||
.hidden {
|
||||
display: none }
|
||||
|
||||
a.toc-backref {
|
||||
text-decoration: none ;
|
||||
color: black }
|
||||
|
||||
blockquote.epigraph {
|
||||
margin: 2em 5em ; }
|
||||
|
||||
dl.docutils dd {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
||||
dl.docutils dt {
|
||||
font-weight: bold }
|
||||
*/
|
||||
|
||||
div.abstract {
|
||||
margin: 2em 5em }
|
||||
|
||||
div.abstract p.topic-title {
|
||||
font-weight: bold ;
|
||||
text-align: center }
|
||||
|
||||
div.admonition, 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.admonition p.admonition-title, 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.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 }
|
||||
|
||||
/* Uncomment (and remove this text!) to get reduced vertical space in
|
||||
compound paragraphs.
|
||||
div.compound .compound-first, div.compound .compound-middle {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
div.compound .compound-last, div.compound .compound-middle {
|
||||
margin-top: 0.5em }
|
||||
*/
|
||||
|
||||
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 ;
|
||||
margin-right: 2em }
|
||||
|
||||
div.footer, div.header {
|
||||
clear: both;
|
||||
font-size: smaller }
|
||||
|
||||
div.line-block {
|
||||
display: block ;
|
||||
margin-top: 1em ;
|
||||
margin-bottom: 1em }
|
||||
|
||||
div.line-block div.line-block {
|
||||
margin-top: 0 ;
|
||||
margin-bottom: 0 ;
|
||||
margin-left: 1.5em }
|
||||
|
||||
div.sidebar {
|
||||
margin-left: 1em ;
|
||||
border: medium outset ;
|
||||
padding: 1em ;
|
||||
background-color: #ffffee ;
|
||||
width: 40% ;
|
||||
float: right ;
|
||||
clear: right }
|
||||
|
||||
div.sidebar p.rubric {
|
||||
font-family: sans-serif ;
|
||||
font-size: medium }
|
||||
|
||||
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.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
||||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
||||
margin-top: 0.4em }
|
||||
|
||||
h1.title {
|
||||
text-align: center }
|
||||
|
||||
h2.subtitle {
|
||||
text-align: center }
|
||||
|
||||
hr.docutils {
|
||||
width: 75% }
|
||||
|
||||
img.align-left {
|
||||
clear: left }
|
||||
|
||||
img.align-right {
|
||||
clear: right }
|
||||
|
||||
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.attribution {
|
||||
text-align: right ;
|
||||
margin-left: 50% }
|
||||
|
||||
p.caption {
|
||||
font-style: italic }
|
||||
|
||||
p.credits {
|
||||
font-style: italic ;
|
||||
font-size: smaller }
|
||||
|
||||
p.label {
|
||||
white-space: nowrap }
|
||||
|
||||
p.rubric {
|
||||
font-weight: bold ;
|
||||
font-size: larger ;
|
||||
color: maroon ;
|
||||
text-align: center }
|
||||
|
||||
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.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.pre {
|
||||
white-space: pre }
|
||||
|
||||
span.problematic {
|
||||
color: red }
|
||||
|
||||
span.section-subtitle {
|
||||
/* font-size relative to parent (h1..h6 element) */
|
||||
font-size: 80% }
|
||||
|
||||
table.citation {
|
||||
border-left: solid 1px gray;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docinfo {
|
||||
margin: 2em 4em }
|
||||
|
||||
table.docutils {
|
||||
margin-top: 0.5em ;
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
table.footnote {
|
||||
border-left: solid 1px black;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docutils td, table.docutils th,
|
||||
table.docinfo td, table.docinfo th {
|
||||
padding-left: 0.5em ;
|
||||
padding-right: 0.5em ;
|
||||
vertical-align: top }
|
||||
|
||||
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
||||
font-weight: bold ;
|
||||
text-align: left ;
|
||||
white-space: nowrap ;
|
||||
padding-left: 0 }
|
||||
|
||||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
||||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
||||
font-size: 100% }
|
||||
|
||||
tt.docutils {
|
||||
background-color: #eeeeee }
|
||||
|
||||
ul.auto-toc {
|
||||
list-style-type: none }
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="document" id="installing-wxpython-2-6-from-source">
|
||||
<h1 class="title">Installing wxPython 2.6 from Source</h1>
|
||||
<div class="document" id="installing-wxpython-2-7-from-source">
|
||||
<h1 class="title">Installing wxPython 2.7 from Source</h1>
|
||||
<p>This document will describe the few differences and additions to the
|
||||
content in the <a class="reference" href="BUILD.html">BUILD</a> document for installing wxPython built from
|
||||
source. Please follow the intstructions both in this file and in
|
||||
<a class="reference" href="BUILD.html">BUILD</a> to perform this task. Where there is overlap the items
|
||||
described here will take precedence for doing installations.</p>
|
||||
<div class="section" id="installing-on-unix-like-systems-not-os-x">
|
||||
<h1><a name="installing-on-unix-like-systems-not-os-x">Installing on Unix-like Systems (not OS X)</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="installing-on-unix-like-systems-not-os-x" name="installing-on-unix-like-systems-not-os-x">Installing on Unix-like Systems (not OS X)</a></h1>
|
||||
<ol class="arabic">
|
||||
<li><p class="first">When building wxWidgets you need to decide if you want it to be a
|
||||
private copy only accessed by wxPython, or if you would like it to
|
||||
@@ -49,7 +331,7 @@ find the wxWidgets shared libraries. You can hard code the library
|
||||
path into the binaries by using the rpath option when configuring
|
||||
wxWidgets. For example:</p>
|
||||
<pre class="literal-block">
|
||||
--enable-rpath=/opt/wx/2.6/lib \
|
||||
--enable-rpath=/opt/wx/2.7/lib \
|
||||
</pre>
|
||||
<p>SOLARIS NOTE: The --enable-rpath option may cause problems when
|
||||
using wxGTK on Solaris when compiling wxPython as described below.
|
||||
@@ -69,7 +351,7 @@ into the same bin dir used by Python by using this command, plus
|
||||
whatever WXPORT, UNICODE, etc. settings you used for the initial
|
||||
build step:</p>
|
||||
<pre class="literal-block">
|
||||
python2.3 setup.py install
|
||||
python2.5 setup.py install
|
||||
</pre>
|
||||
<p>If you would like to install to some place besides the prefix where
|
||||
Python is installed, (such as to your home directory) then you can
|
||||
@@ -81,8 +363,8 @@ contained in the PYTHONPATH environment variable.</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="section" id="installing-on-os-x">
|
||||
<h1><a name="installing-on-os-x">Installing on OS X</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="installing-on-os-x" name="installing-on-os-x">Installing on OS X</a></h1>
|
||||
<p>Installing wxPython on OS X is nearly the same as the Unix
|
||||
instructions above, except for a few small, but important details:</p>
|
||||
<ol class="arabic simple">
|
||||
@@ -112,8 +394,8 @@ app to run wxPython apps, otherwise the app will not be able to
|
||||
fully use the GUI display.</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="section" id="installing-on-windows">
|
||||
<h1><a name="installing-on-windows">Installing on Windows</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="installing-on-windows" name="installing-on-windows">Installing on Windows</a></h1>
|
||||
<ol class="arabic">
|
||||
<li><p class="first">Build wxWidgets and wxPython as described in BUILD.txt. If you
|
||||
would rather have a version without the code that turns runtime
|
||||
@@ -131,7 +413,7 @@ python setup.py install
|
||||
found at runtime by the extension modules without requiring that
|
||||
they be installed on the PATH:</p>
|
||||
<pre class="literal-block">
|
||||
copy %WXWIN%\lib\vc_dll\wx*h_*.dll c:\Python23\Lib\site-packages\wx
|
||||
copy %WXWIN%\\lib\\vc_dll\\wx*h_*.dll c:\\Python25\\Lib\\site-packages\\wx
|
||||
</pre>
|
||||
</li>
|
||||
</ol>
|
||||
|
@@ -3,9 +3,291 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
|
||||
<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
|
||||
<title>wxPython 2.6 Migration Guide</title>
|
||||
<link rel="stylesheet" href="default.css" type="text/css" />
|
||||
<style type="text/css">
|
||||
|
||||
/*
|
||||
:Author: David Goodger
|
||||
:Contact: goodger@users.sourceforge.net
|
||||
:Date: $Date$
|
||||
:Revision: $Revision$
|
||||
:Copyright: This stylesheet has been placed in the public domain.
|
||||
|
||||
Default cascading style sheet for the HTML output of Docutils.
|
||||
|
||||
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
|
||||
customize this style sheet.
|
||||
*/
|
||||
|
||||
/* used to remove borders from tables and images */
|
||||
.borderless, table.borderless td, table.borderless th {
|
||||
border: 0 }
|
||||
|
||||
table.borderless td, table.borderless th {
|
||||
/* Override padding for "table.docutils td" with "! important".
|
||||
The right padding separates the table cells. */
|
||||
padding: 0 0.5em 0 0 ! important }
|
||||
|
||||
.first {
|
||||
/* Override more specific margin styles with "! important". */
|
||||
margin-top: 0 ! important }
|
||||
|
||||
.last, .with-subtitle {
|
||||
margin-bottom: 0 ! important }
|
||||
|
||||
.hidden {
|
||||
display: none }
|
||||
|
||||
a.toc-backref {
|
||||
text-decoration: none ;
|
||||
color: black }
|
||||
|
||||
blockquote.epigraph {
|
||||
margin: 2em 5em ; }
|
||||
|
||||
dl.docutils dd {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
||||
dl.docutils dt {
|
||||
font-weight: bold }
|
||||
*/
|
||||
|
||||
div.abstract {
|
||||
margin: 2em 5em }
|
||||
|
||||
div.abstract p.topic-title {
|
||||
font-weight: bold ;
|
||||
text-align: center }
|
||||
|
||||
div.admonition, 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.admonition p.admonition-title, 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.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 }
|
||||
|
||||
/* Uncomment (and remove this text!) to get reduced vertical space in
|
||||
compound paragraphs.
|
||||
div.compound .compound-first, div.compound .compound-middle {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
div.compound .compound-last, div.compound .compound-middle {
|
||||
margin-top: 0.5em }
|
||||
*/
|
||||
|
||||
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 ;
|
||||
margin-right: 2em }
|
||||
|
||||
div.footer, div.header {
|
||||
clear: both;
|
||||
font-size: smaller }
|
||||
|
||||
div.line-block {
|
||||
display: block ;
|
||||
margin-top: 1em ;
|
||||
margin-bottom: 1em }
|
||||
|
||||
div.line-block div.line-block {
|
||||
margin-top: 0 ;
|
||||
margin-bottom: 0 ;
|
||||
margin-left: 1.5em }
|
||||
|
||||
div.sidebar {
|
||||
margin-left: 1em ;
|
||||
border: medium outset ;
|
||||
padding: 1em ;
|
||||
background-color: #ffffee ;
|
||||
width: 40% ;
|
||||
float: right ;
|
||||
clear: right }
|
||||
|
||||
div.sidebar p.rubric {
|
||||
font-family: sans-serif ;
|
||||
font-size: medium }
|
||||
|
||||
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.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
||||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
||||
margin-top: 0.4em }
|
||||
|
||||
h1.title {
|
||||
text-align: center }
|
||||
|
||||
h2.subtitle {
|
||||
text-align: center }
|
||||
|
||||
hr.docutils {
|
||||
width: 75% }
|
||||
|
||||
img.align-left {
|
||||
clear: left }
|
||||
|
||||
img.align-right {
|
||||
clear: right }
|
||||
|
||||
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.attribution {
|
||||
text-align: right ;
|
||||
margin-left: 50% }
|
||||
|
||||
p.caption {
|
||||
font-style: italic }
|
||||
|
||||
p.credits {
|
||||
font-style: italic ;
|
||||
font-size: smaller }
|
||||
|
||||
p.label {
|
||||
white-space: nowrap }
|
||||
|
||||
p.rubric {
|
||||
font-weight: bold ;
|
||||
font-size: larger ;
|
||||
color: maroon ;
|
||||
text-align: center }
|
||||
|
||||
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.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.pre {
|
||||
white-space: pre }
|
||||
|
||||
span.problematic {
|
||||
color: red }
|
||||
|
||||
span.section-subtitle {
|
||||
/* font-size relative to parent (h1..h6 element) */
|
||||
font-size: 80% }
|
||||
|
||||
table.citation {
|
||||
border-left: solid 1px gray;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docinfo {
|
||||
margin: 2em 4em }
|
||||
|
||||
table.docutils {
|
||||
margin-top: 0.5em ;
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
table.footnote {
|
||||
border-left: solid 1px black;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docutils td, table.docutils th,
|
||||
table.docinfo td, table.docinfo th {
|
||||
padding-left: 0.5em ;
|
||||
padding-right: 0.5em ;
|
||||
vertical-align: top }
|
||||
|
||||
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
||||
font-weight: bold ;
|
||||
text-align: left ;
|
||||
white-space: nowrap ;
|
||||
padding-left: 0 }
|
||||
|
||||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
||||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
||||
font-size: 100% }
|
||||
|
||||
tt.docutils {
|
||||
background-color: #eeeeee }
|
||||
|
||||
ul.auto-toc {
|
||||
list-style-type: none }
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="document" id="wxpython-2-6-migration-guide">
|
||||
@@ -15,8 +297,8 @@
|
||||
your programs to those changes. Be sure to also check in the <a class="reference" href="CHANGES.html">CHANGES</a>
|
||||
file like usual to see info about the not so major changes and other
|
||||
things that have been added to wxPython.</p>
|
||||
<div class="section" id="wxname-change">
|
||||
<h1><a name="wxname-change">wxName Change</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="wxname-change" name="wxname-change">wxName Change</a></h1>
|
||||
<p>The <strong>wxWindows</strong> project and library is now known as
|
||||
<strong>wxWidgets</strong>. Please see <a class="reference" href="http://www.wxwidgets.org/name.htm">here</a> for more details.</p>
|
||||
<p>This won't really affect wxPython all that much, other than the fact
|
||||
@@ -25,8 +307,8 @@ so mail list, CVS, and etc. addresses have also changed. We're going
|
||||
to try and smooth the transition as much as possible, but I wanted you
|
||||
all to be aware of this change if you run into any issues.</p>
|
||||
</div>
|
||||
<div class="section" id="module-initialization">
|
||||
<h1><a name="module-initialization">Module Initialization</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="module-initialization" name="module-initialization">Module Initialization</a></h1>
|
||||
<p>The import-startup-bootstrap process employed by wxPython was changed
|
||||
such that wxWidgets and the underlying gui toolkit are <strong>not</strong>
|
||||
initialized until the wx.App object is created (but before wx.App.OnInit
|
||||
@@ -51,8 +333,8 @@ class constructors and also many toplevel functions and static methods
|
||||
will now check that a wx.App object has already been created and will
|
||||
raise a wx.PyNoAppError exception if not.</p>
|
||||
</div>
|
||||
<div class="section" id="swig-1-3">
|
||||
<h1><a name="swig-1-3">SWIG 1.3</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="swig-1-3" name="swig-1-3">SWIG 1.3</a></h1>
|
||||
<p>wxPython is now using SWIG 1.3.x from CVS (with several of my own
|
||||
customizations added that I hope to get folded back into the main SWIG
|
||||
distribution.) This has some far reaching ramifications:</p>
|
||||
@@ -79,8 +361,8 @@ class type using something like isinstance(obj, wx.FooPtr) you will
|
||||
need to change it to isinstance(obj, wx.Foo).</p>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="section" id="binding-events">
|
||||
<h1><a name="binding-events">Binding Events</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="binding-events" name="binding-events">Binding Events</a></h1>
|
||||
<p>All of the EVT_* functions are now instances of the wx.PyEventBinder
|
||||
class. They have a __call__ method so they can still be used as
|
||||
functions like before, but making them instances adds some
|
||||
@@ -132,11 +414,11 @@ values:</p>
|
||||
item = menu.Append(-1, "E&xit", "Terminate the App")
|
||||
self.Bind(wx.EVT_MENU, self.OnExit, item)
|
||||
|
||||
2.
|
||||
2.
|
||||
item = menu.Append(wx.ID_EXIT, "E&xit", "Terminate the App")
|
||||
self.Bind(wx.EVT_MENU, self.OnExit, item)
|
||||
|
||||
3.
|
||||
3.
|
||||
menu.Append(wx.ID_EXIT, "E&xit", "Terminate the App")
|
||||
self.Bind(wx.EVT_MENU, self.OnExit, id=wx.ID_EXIT)
|
||||
</pre>
|
||||
@@ -167,8 +449,8 @@ def Unbind(self, event, source=None, id=wx.ID_ANY, id2=wx.ID_ANY):
|
||||
"""
|
||||
</pre>
|
||||
</div>
|
||||
<div class="section" id="the-wx-namespace">
|
||||
<h1><a name="the-wx-namespace">The wx Namespace</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="the-wx-namespace" name="the-wx-namespace">The wx Namespace</a></h1>
|
||||
<p>The second phase of the wx Namespace Transition has begun. That means
|
||||
that the real names of the classes and other symbols do not have the
|
||||
'wx' prefix and the modules are located in a Python package named
|
||||
@@ -225,8 +507,8 @@ you rewrote the above sample using "from wxPython.wx import * ", the
|
||||
old wxNames, and the old style of event binding it will still work
|
||||
just fine.</p>
|
||||
</div>
|
||||
<div class="section" id="new-wx-dc-methods">
|
||||
<h1><a name="new-wx-dc-methods">New wx.DC Methods</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="new-wx-dc-methods" name="new-wx-dc-methods">New wx.DC Methods</a></h1>
|
||||
<p><strong>[Changed in 2.5.2.x]</strong> In wxPython 2.5.1.5 there was a new
|
||||
implementation of the wx.DC Draw and other methods that broke
|
||||
backwards compatibility in the name of consistency. That change has
|
||||
@@ -240,7 +522,7 @@ FloodFill(self, x, y, colour, style = wx.FLOOD_SURFACE)
|
||||
FoodFillPoint(self, pt, colour, style = wx.FLOOD_SURFACE)
|
||||
|
||||
GetPixel(self, x,y)
|
||||
GetPixelPoint(self, pt)
|
||||
GetPixelPoint(self, pt)
|
||||
|
||||
DrawLine(self, x1, y1, x2, y2)
|
||||
DrawLinePoint(self, pt1, pt2)
|
||||
@@ -289,7 +571,7 @@ DrawRotatedTextPoint(self, text, pt, angle)
|
||||
|
||||
bool Blit(self, xdest, ydest, width, height, sourceDC, xsrc, ysrc,
|
||||
rop = wx.COPY, useMask = False, xsrcMask = -1, ysrcMask = -1)
|
||||
BlitPointSize(self, destPt, sz, sourceDC, srcPt, rop = wx.COPY,
|
||||
BlitPointSize(self, destPt, sz, sourceDC, srcPt, rop = wx.COPY,
|
||||
useMask = False, srcPtMask = wxDefaultPosition)
|
||||
|
||||
|
||||
@@ -299,8 +581,8 @@ SetClippingRegionAsRegion(self, region)
|
||||
SetClippingRect(self, rect)
|
||||
</pre>
|
||||
</div>
|
||||
<div class="section" id="building-extending-and-embedding-wxpython">
|
||||
<h1><a name="building-extending-and-embedding-wxpython">Building, Extending and Embedding wxPython</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="building-extending-and-embedding-wxpython" name="building-extending-and-embedding-wxpython">Building, Extending and Embedding wxPython</a></h1>
|
||||
<p>wxPython's setup.py script now expects to use existing libraries for
|
||||
the contribs (gizmos, stc, xrc, etc.) rather than building local
|
||||
copies of them. If you build your own copies of wxPython please be
|
||||
@@ -339,8 +621,8 @@ are wrapped in the standard Py_(BEGIN|END)_ALLOW_THERADS may result in
|
||||
wx event handlers being called (such as during the call to
|
||||
os.startfile.)</p>
|
||||
</div>
|
||||
<div class="section" id="two-or-three-phase-create">
|
||||
<h1><a name="two-or-three-phase-create">Two (or Three!) Phase Create</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="two-or-three-phase-create" name="two-or-three-phase-create">Two (or Three!) Phase Create</a></h1>
|
||||
<p>If you use the Precreate/Create method of instantiating a window, (for
|
||||
example, to set an extended style flag, or for XRC handlers) then
|
||||
there is now a new method named PostCreate to help with transplanting
|
||||
@@ -355,8 +637,8 @@ class MyDialog(wx.Dialog):
|
||||
self.PostCreate(pre)
|
||||
</pre>
|
||||
</div>
|
||||
<div class="section" id="sizers">
|
||||
<h1><a name="sizers">Sizers</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="sizers" name="sizers">Sizers</a></h1>
|
||||
<p>The hack allowing the old "option" keyword parameter has been removed.
|
||||
If you use keyword args with wx.Sizer Add, Insert, or Prepend methods
|
||||
then you will need to use the <tt class="docutils literal"><span class="pre">proportion</span></tt> name instead of
|
||||
@@ -473,8 +755,8 @@ This can be done by calling <tt class="docutils literal"><span class="pre">SetBe
|
||||
</ul>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="section" id="platforminfo">
|
||||
<h1><a name="platforminfo">PlatformInfo</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="platforminfo" name="platforminfo">PlatformInfo</a></h1>
|
||||
<p>Added wx.PlatformInfo which is a tuple containing strings that
|
||||
describe the platform and build options of wxPython. This lets you
|
||||
know more about the build than just the __WXPORT__ value that
|
||||
@@ -495,8 +777,8 @@ way. If there are any other platform/toolkit/build flags that make
|
||||
sense to add to this tuple please let me know.</p>
|
||||
<p>BTW, wx.Platform will probably be deprecated in the future.</p>
|
||||
</div>
|
||||
<div class="section" id="activex">
|
||||
<h1><a name="activex">ActiveX</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="activex" name="activex">ActiveX</a></h1>
|
||||
<p>Lindsay Mathieson's newest <a class="reference" href="http://members.optusnet.com.au/~blackpaw1/wxactivex.html">wxActiveX</a> class has been wrapped into a new
|
||||
extension module called wx.activex. It is very generic and dynamic
|
||||
and should allow hosting of arbitray ActiveX controls within your
|
||||
@@ -585,7 +867,7 @@ new window from being opened by the IE web browser control you can do
|
||||
this in the handler for the iewin.EVT_NewWindow2 event:</p>
|
||||
<pre class="literal-block">
|
||||
def OnNewWindow2(self, evt):
|
||||
evt.Cancel = True
|
||||
evt.Cancel = True
|
||||
</pre>
|
||||
<p>So how do you know what methods, events and properties that an ActiveX
|
||||
control supports? There is a funciton in wx.activex named GetAXInfo
|
||||
@@ -596,8 +878,8 @@ output appended as a comment to the modules produced by the
|
||||
genaxmodule tool. Beyond that you'll need to consult the docs
|
||||
provided by the makers of the ActiveX control that you are using.</p>
|
||||
</div>
|
||||
<div class="section" id="png-images">
|
||||
<h1><a name="png-images">PNG Images</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="png-images" name="png-images">PNG Images</a></h1>
|
||||
<p>Prior to 2.5 the PNG image handler would convert all alpha channel
|
||||
information to a mask when the image was loaded. Pixels that were
|
||||
more than halfway transparent would be made fully transparent by the
|
||||
@@ -619,8 +901,8 @@ fully transparent.</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div class="section" id="ogl-is-dead-long-live-ogl">
|
||||
<h1><a name="ogl-is-dead-long-live-ogl">OGL is dead! LONG LIVE OGL!</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="ogl-is-dead-long-live-ogl" name="ogl-is-dead-long-live-ogl">OGL is dead! LONG LIVE OGL!</a></h1>
|
||||
<p><strong>[Changed in 2.5.2.x]</strong></p>
|
||||
<p>The wx.ogl module was deprecated in version 2.5.2 in favor of the new
|
||||
Python port of the OGL library located at wx.lib.ogl contributed by
|
||||
@@ -664,11 +946,11 @@ class MyDividedShape(ogl.DividedShape):
|
||||
...
|
||||
def OnSizingEndDragLeft(self, pt, x, y, keys, attch):
|
||||
ogl.DividedShape.OnSizingEndDragLeft(self, pt, x, y, keys, attch)
|
||||
...
|
||||
...
|
||||
</pre>
|
||||
</div>
|
||||
<div class="section" id="obsolete-modules">
|
||||
<h1><a name="obsolete-modules">Obsolete Modules</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="obsolete-modules" name="obsolete-modules">Obsolete Modules</a></h1>
|
||||
<p>Instead of over a dozen separate extension modules linked together
|
||||
into a single extension module, the "core" module is now just a few
|
||||
extensions that are linked independently, and then merged together
|
||||
@@ -718,8 +1000,8 @@ the objects in these modules only via the wx or wxPython.wx packages:</p>
|
||||
<p>The help module no longer exists and the classes therein are now part
|
||||
of the core module imported with wxPython.wx or the wx package.</p>
|
||||
</div>
|
||||
<div class="section" id="wx-taskbaricon">
|
||||
<h1><a name="wx-taskbaricon">wx.TaskBarIcon</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="wx-taskbaricon" name="wx-taskbaricon">wx.TaskBarIcon</a></h1>
|
||||
<p><strong>[Changed in 2.5.3.x]</strong></p>
|
||||
<p>wx.TaskbarIcon now works on all three platforms, although for wxGTK it
|
||||
depends on support from the Window Manager. On OS X the icon replaces
|
||||
@@ -747,8 +1029,8 @@ wx.Dialogs.) If you don't destroy it then wxWidgets will assume that
|
||||
you want the app to keep running with just the icon in the task bar
|
||||
and the MainLoop will not exit.</p>
|
||||
</div>
|
||||
<div class="section" id="version-number-change">
|
||||
<h1><a name="version-number-change">Version Number Change</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="version-number-change" name="version-number-change">Version Number Change</a></h1>
|
||||
<p><strong>[Changed in 2.5.3.x]</strong></p>
|
||||
<p>Starting with 2.5.3.0 the Unicode versions of wxPython will no longer
|
||||
have a 'u' appended to the fourth component of the version number.
|
||||
@@ -761,8 +1043,8 @@ if "unicode" in wx.PlatformInfo:
|
||||
...
|
||||
</pre>
|
||||
</div>
|
||||
<div class="section" id="multi-version-installs">
|
||||
<h1><a name="multi-version-installs">Multi-Version Installs</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="multi-version-installs" name="multi-version-installs">Multi-Version Installs</a></h1>
|
||||
<p><strong>[Changed in 2.5.3.x]</strong></p>
|
||||
<p>Starting with 2.5.3.0 the wx and wxPython package directories will be
|
||||
installed in a subdirectory of the site-packages directory, instead of
|
||||
@@ -803,8 +1085,8 @@ version of wxPython that supports this, but there will be.</p>
|
||||
<p>Please see this wiki page for more details, HowTo's and FAQ's:
|
||||
<a class="reference" href="http://wiki.wxpython.org/index.cgi/MultiVersionInstalls">http://wiki.wxpython.org/index.cgi/MultiVersionInstalls</a></p>
|
||||
</div>
|
||||
<div class="section" id="miscellaneous-stuff">
|
||||
<h1><a name="miscellaneous-stuff">Miscellaneous Stuff</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="miscellaneous-stuff" name="miscellaneous-stuff">Miscellaneous Stuff</a></h1>
|
||||
<p>wxPyDefaultPosition and wxPyDefaultSize are gone. Use the
|
||||
wxDefaultPosition and wxDefaultSize objects instead.</p>
|
||||
<p>Similarly, the wxSystemSettings backwards compatibiility aliases for
|
||||
|
@@ -3,12 +3,294 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
|
||||
<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
|
||||
<title>The Py Manual</title>
|
||||
<meta name="author" content="Patrick K. O'Brien" />
|
||||
<meta name="organization" content="Orbtech" />
|
||||
<meta name="date" content="2004-04-15" />
|
||||
<link rel="stylesheet" href="default.css" type="text/css" />
|
||||
<style type="text/css">
|
||||
|
||||
/*
|
||||
:Author: David Goodger
|
||||
:Contact: goodger@users.sourceforge.net
|
||||
:Date: $Date$
|
||||
:Revision: $Revision$
|
||||
:Copyright: This stylesheet has been placed in the public domain.
|
||||
|
||||
Default cascading style sheet for the HTML output of Docutils.
|
||||
|
||||
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
|
||||
customize this style sheet.
|
||||
*/
|
||||
|
||||
/* used to remove borders from tables and images */
|
||||
.borderless, table.borderless td, table.borderless th {
|
||||
border: 0 }
|
||||
|
||||
table.borderless td, table.borderless th {
|
||||
/* Override padding for "table.docutils td" with "! important".
|
||||
The right padding separates the table cells. */
|
||||
padding: 0 0.5em 0 0 ! important }
|
||||
|
||||
.first {
|
||||
/* Override more specific margin styles with "! important". */
|
||||
margin-top: 0 ! important }
|
||||
|
||||
.last, .with-subtitle {
|
||||
margin-bottom: 0 ! important }
|
||||
|
||||
.hidden {
|
||||
display: none }
|
||||
|
||||
a.toc-backref {
|
||||
text-decoration: none ;
|
||||
color: black }
|
||||
|
||||
blockquote.epigraph {
|
||||
margin: 2em 5em ; }
|
||||
|
||||
dl.docutils dd {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
||||
dl.docutils dt {
|
||||
font-weight: bold }
|
||||
*/
|
||||
|
||||
div.abstract {
|
||||
margin: 2em 5em }
|
||||
|
||||
div.abstract p.topic-title {
|
||||
font-weight: bold ;
|
||||
text-align: center }
|
||||
|
||||
div.admonition, 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.admonition p.admonition-title, 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.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 }
|
||||
|
||||
/* Uncomment (and remove this text!) to get reduced vertical space in
|
||||
compound paragraphs.
|
||||
div.compound .compound-first, div.compound .compound-middle {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
div.compound .compound-last, div.compound .compound-middle {
|
||||
margin-top: 0.5em }
|
||||
*/
|
||||
|
||||
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 ;
|
||||
margin-right: 2em }
|
||||
|
||||
div.footer, div.header {
|
||||
clear: both;
|
||||
font-size: smaller }
|
||||
|
||||
div.line-block {
|
||||
display: block ;
|
||||
margin-top: 1em ;
|
||||
margin-bottom: 1em }
|
||||
|
||||
div.line-block div.line-block {
|
||||
margin-top: 0 ;
|
||||
margin-bottom: 0 ;
|
||||
margin-left: 1.5em }
|
||||
|
||||
div.sidebar {
|
||||
margin-left: 1em ;
|
||||
border: medium outset ;
|
||||
padding: 1em ;
|
||||
background-color: #ffffee ;
|
||||
width: 40% ;
|
||||
float: right ;
|
||||
clear: right }
|
||||
|
||||
div.sidebar p.rubric {
|
||||
font-family: sans-serif ;
|
||||
font-size: medium }
|
||||
|
||||
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.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
||||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
||||
margin-top: 0.4em }
|
||||
|
||||
h1.title {
|
||||
text-align: center }
|
||||
|
||||
h2.subtitle {
|
||||
text-align: center }
|
||||
|
||||
hr.docutils {
|
||||
width: 75% }
|
||||
|
||||
img.align-left {
|
||||
clear: left }
|
||||
|
||||
img.align-right {
|
||||
clear: right }
|
||||
|
||||
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.attribution {
|
||||
text-align: right ;
|
||||
margin-left: 50% }
|
||||
|
||||
p.caption {
|
||||
font-style: italic }
|
||||
|
||||
p.credits {
|
||||
font-style: italic ;
|
||||
font-size: smaller }
|
||||
|
||||
p.label {
|
||||
white-space: nowrap }
|
||||
|
||||
p.rubric {
|
||||
font-weight: bold ;
|
||||
font-size: larger ;
|
||||
color: maroon ;
|
||||
text-align: center }
|
||||
|
||||
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.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.pre {
|
||||
white-space: pre }
|
||||
|
||||
span.problematic {
|
||||
color: red }
|
||||
|
||||
span.section-subtitle {
|
||||
/* font-size relative to parent (h1..h6 element) */
|
||||
font-size: 80% }
|
||||
|
||||
table.citation {
|
||||
border-left: solid 1px gray;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docinfo {
|
||||
margin: 2em 4em }
|
||||
|
||||
table.docutils {
|
||||
margin-top: 0.5em ;
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
table.footnote {
|
||||
border-left: solid 1px black;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docutils td, table.docutils th,
|
||||
table.docinfo td, table.docinfo th {
|
||||
padding-left: 0.5em ;
|
||||
padding-right: 0.5em ;
|
||||
vertical-align: top }
|
||||
|
||||
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
||||
font-weight: bold ;
|
||||
text-align: left ;
|
||||
white-space: nowrap ;
|
||||
padding-left: 0 }
|
||||
|
||||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
||||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
||||
font-size: 100% }
|
||||
|
||||
tt.docutils {
|
||||
background-color: #eeeeee }
|
||||
|
||||
ul.auto-toc {
|
||||
list-style-type: none }
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="document" id="the-py-manual">
|
||||
@@ -30,8 +312,8 @@
|
||||
<td>1.5</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="contents topic" id="contents">
|
||||
<p class="topic-title first"><a name="contents">Contents</a></p>
|
||||
<div class="contents topic">
|
||||
<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
|
||||
<ul class="simple">
|
||||
<li><a class="reference" href="#introduction" id="id4" name="id4">Introduction</a></li>
|
||||
<li><a class="reference" href="#developer-reference" id="id5" name="id5">Developer Reference</a></li>
|
||||
@@ -75,20 +357,20 @@
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="introduction">
|
||||
<h1><a class="toc-backref" href="#id4" name="introduction">Introduction</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id4" id="introduction" name="introduction">Introduction</a></h1>
|
||||
<p>This document will show you how to use the Py programs and the Py
|
||||
library of Python source code modules. Py is the new name for the
|
||||
project that began as PyCrust. Py is officially part of <a class="reference" href="http://www.wxpython.org/">wxPython</a>,
|
||||
and includes PyCrust, so PyCrust is no longer distributed separately.</p>
|
||||
</div>
|
||||
<div class="section" id="developer-reference">
|
||||
<h1><a class="toc-backref" href="#id5" name="developer-reference">Developer Reference</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id5" id="developer-reference" name="developer-reference">Developer Reference</a></h1>
|
||||
<p>Source code documentation for developers is available at:</p>
|
||||
<p><a class="reference" href="http://www.orbtech.com/www/wx/epydoc/public/wx.py-module.html">http://www.orbtech.com/www/wx/epydoc/public/wx.py-module.html</a></p>
|
||||
</div>
|
||||
<div class="section" id="what-is-py">
|
||||
<h1><a class="toc-backref" href="#id6" name="what-is-py">What is Py?</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id6" id="what-is-py" name="what-is-py">What is Py?</a></h1>
|
||||
<p>Besides being <a class="reference" href="http://www.wikipedia.org/wiki/Pie">a delicious dessert</a>, Py is the name for a collection
|
||||
of whimsically-named Python programs and modules that began as the
|
||||
PyCrust project. So Py is really several things: a set of standalone
|
||||
@@ -99,8 +381,8 @@ do something, you might as well do it all the way, right?) Py uses
|
||||
Python and wxPython, so it works equally well on Windows, Linux and
|
||||
Mac OS X.</p>
|
||||
</div>
|
||||
<div class="section" id="pycrust-is-dead-long-live-py">
|
||||
<h1><a class="toc-backref" href="#id7" name="pycrust-is-dead-long-live-py">PyCrust is dead! Long live Py!</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id7" id="pycrust-is-dead-long-live-py" name="pycrust-is-dead-long-live-py">PyCrust is dead! Long live Py!</a></h1>
|
||||
<p>This project began with a program I created called PyCrust - an
|
||||
interactive, graphical Python shell, developed using the wxPython GUI
|
||||
toolkit. For about two years, PyCrust was hosted on <a class="reference" href="http://www.sf.net/projects/pycrust/">SourceForge</a>.
|
||||
@@ -136,8 +418,8 @@ wxPython applications to provide similar services, either for your own
|
||||
use during development, or as an interface for users of your programs.
|
||||
These modules are the same ones used by all the Py programs.</p>
|
||||
</div>
|
||||
<div class="section" id="py-standalone-programs">
|
||||
<h1><a class="toc-backref" href="#id8" name="py-standalone-programs">Py standalone programs</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id8" id="py-standalone-programs" name="py-standalone-programs">Py standalone programs</a></h1>
|
||||
<p>These are the standalone applications in the Py collection:</p>
|
||||
<ul class="simple">
|
||||
<li>PyAlaCarte</li>
|
||||
@@ -148,42 +430,42 @@ These modules are the same ones used by all the Py programs.</p>
|
||||
<li>PyWrap</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="pyalacarte">
|
||||
<h1><a class="toc-backref" href="#id9" name="pyalacarte">PyAlaCarte</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id9" id="pyalacarte" name="pyalacarte">PyAlaCarte</a></h1>
|
||||
<p>PyAlaCarte is a Python source code editor. It is designed to have a
|
||||
simple, single-file interface. As a standalone application, it is
|
||||
good for simple, short editing tasks. But it is really meant to be
|
||||
more of an example of how to embed the Py editor into a wxPython
|
||||
application.</p>
|
||||
</div>
|
||||
<div class="section" id="pyalamode">
|
||||
<h1><a class="toc-backref" href="#id10" name="pyalamode">PyAlaMode</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id10" id="pyalamode" name="pyalamode">PyAlaMode</a></h1>
|
||||
<p>PyAlaMode is a Python source code editor.</p>
|
||||
</div>
|
||||
<div class="section" id="pycrust">
|
||||
<h1><a class="toc-backref" href="#id11" name="pycrust">PyCrust</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id11" id="pycrust" name="pycrust">PyCrust</a></h1>
|
||||
<p>PyCrust is an interactive, Python shell. But it's more than just a
|
||||
shell. It includes a tabbed notebook containing a namespace tree
|
||||
(PyFilling), and several other things.</p>
|
||||
</div>
|
||||
<div class="section" id="pyfilling">
|
||||
<h1><a class="toc-backref" href="#id12" name="pyfilling">PyFilling</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id12" id="pyfilling" name="pyfilling">PyFilling</a></h1>
|
||||
<p>PyFilling is a namespace viewer. It isn't really useful as a
|
||||
standalone program, but it does illustrate how to make use of the
|
||||
underlying <tt class="docutils literal"><span class="pre">filling</span></tt> module.</p>
|
||||
</div>
|
||||
<div class="section" id="pyshell">
|
||||
<h1><a class="toc-backref" href="#id13" name="pyshell">PyShell</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id13" id="pyshell" name="pyshell">PyShell</a></h1>
|
||||
<p>PyShell is an interactive, Python shell. It shares the same base code
|
||||
as PyCrust, but doesn't have any of the extra features that appear in
|
||||
the PyCrust notebook interface.</p>
|
||||
<div class="figure">
|
||||
<div class="image"><img alt="screenshots/PyShell.png" src="screenshots/PyShell.png" /></div>
|
||||
<img alt="screenshots/PyShell.png" src="screenshots/PyShell.png" />
|
||||
<p class="caption">PyShell running on Mandrake Linux.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="pywrap">
|
||||
<h1><a class="toc-backref" href="#id14" name="pywrap">PyWrap</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id14" id="pywrap" name="pywrap">PyWrap</a></h1>
|
||||
<p>PyWrap is a runtime utility that lets you run an existing wxPython
|
||||
program with a PyCrust frame at the same time. Inside the PyCrust
|
||||
shell namespace, the local variable <tt class="docutils literal"><span class="pre">app</span></tt> is assigned to your
|
||||
@@ -191,8 +473,8 @@ application instance. In this way you can introspect your entire
|
||||
application within the PyCrust shell, as well as the PyFilling
|
||||
namespace viewer.</p>
|
||||
</div>
|
||||
<div class="section" id="py-modules">
|
||||
<h1><a class="toc-backref" href="#id15" name="py-modules">Py modules</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id15" id="py-modules" name="py-modules">Py modules</a></h1>
|
||||
<p>Py was designed to be modular. That means graphical code is kept
|
||||
separate from non-graphical code, and many of the Py modules can be
|
||||
used by other programs. Likewise, other programs can supply some of
|
||||
@@ -202,8 +484,8 @@ application. As long as it supports the minimum functionality
|
||||
required, PyCrust will work just as well with your interpreter as with
|
||||
its default interpreter.</p>
|
||||
</div>
|
||||
<div class="section" id="projects-using-py">
|
||||
<h1><a class="toc-backref" href="#id16" name="projects-using-py">Projects using Py</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id16" id="projects-using-py" name="projects-using-py">Projects using Py</a></h1>
|
||||
<ul class="simple">
|
||||
<li><a class="reference" href="http://conflictsolver.sourceforge.net/">Conflict Solver</a></li>
|
||||
<li><a class="reference" href="http://www.gnumed.org/">Gnumed</a></li>
|
||||
@@ -215,12 +497,12 @@ its default interpreter.</p>
|
||||
<li><a class="reference" href="http://linus.yorktown.arlington.k12.va.us/CS/APCSC/student_sites/David_Mayo/wxGasp">wxGasp</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="history-of-changes">
|
||||
<h1><a class="toc-backref" href="#id17" name="history-of-changes">History of changes</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id17" id="history-of-changes" name="history-of-changes">History of changes</a></h1>
|
||||
<p>This section lists all the changes that have been made to the Py
|
||||
programs and modules, since the beginning.</p>
|
||||
<div class="section" id="id1">
|
||||
<h2><a class="toc-backref" href="#id18" name="id1">0.9.5 (12/23/2005)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id18" id="id1" name="id1">0.9.5 (12/23/2005)</a></h2>
|
||||
<p>Applied a series of enhancments by Franz Steinaeusler, Adi Sieker, and
|
||||
Sebastian Haase, up until their 7-31-2005 version. (Their next
|
||||
version broke some existing functionality, and added some confusing
|
||||
@@ -261,7 +543,7 @@ place that then has to reach all over the place to do anything.</li>
|
||||
<li>Enable editing of the startup python code, which will either be the
|
||||
file pointed to by PYTHONSTARTUP or a file in the config dir if
|
||||
PYTHONSTARTUP is not set in the environment.</li>
|
||||
<li>Added an option to skip the running of the startup code when
|
||||
<li>Added an option to skip the running of the startup code when
|
||||
PyShell or PyCrust starts.</li>
|
||||
<li>PyCrust adds a pp(item) function to the shell's namespace that
|
||||
pretty prints the item in the Display tab of the notebook. Added
|
||||
@@ -271,8 +553,8 @@ when popping up the call tip.</li>
|
||||
<li>Added Find and Find-Next functions that use the wx.FindReplaceDialog.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="to-2004">
|
||||
<h2><a class="toc-backref" href="#id19" name="to-2004">0.9.4 (1/25/2004 to //2004)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id19" id="to-2004" name="to-2004">0.9.4 (1/25/2004 to //2004)</a></h2>
|
||||
<p>Removed wxd decorators in favor of new SWIG-generated docstrings.</p>
|
||||
<p>Removed docs tabs from crust interface:
|
||||
* wxPython Docs
|
||||
@@ -282,13 +564,13 @@ when popping up the call tip.</li>
|
||||
<p>Changed default namespace of Shell to __main__.__dict__, instead of an
|
||||
empty dictionary.</p>
|
||||
</div>
|
||||
<div class="section" id="to-1-24-2004">
|
||||
<h2><a class="toc-backref" href="#id20" name="to-1-24-2004">0.9.3 (9/25/2003 to 1/24/2004)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id20" id="to-1-24-2004" name="to-1-24-2004">0.9.3 (9/25/2003 to 1/24/2004)</a></h2>
|
||||
<p>Fun and games with dynamic renaming. Details of any other changes
|
||||
were lost in the confusion. I'll try to do better in the future.</p>
|
||||
</div>
|
||||
<div class="section" id="to-9-25-2003">
|
||||
<h2><a class="toc-backref" href="#id21" name="to-9-25-2003">0.9.2 (5/3/2003 to 9/25/2003)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id21" id="to-9-25-2003" name="to-9-25-2003">0.9.2 (5/3/2003 to 9/25/2003)</a></h2>
|
||||
<p>Changed to the new prefix-less "wx" package:</p>
|
||||
<pre class="literal-block">
|
||||
import wx
|
||||
@@ -330,8 +612,8 @@ def CanPaste(self):
|
||||
return stc.StyledTextCtrl.CanPaste(self) and self.CanEdit()
|
||||
</pre>
|
||||
</div>
|
||||
<div class="section" id="to-5-2-2003">
|
||||
<h2><a class="toc-backref" href="#id22" name="to-5-2-2003">0.9.1 (3/21/2003 to 5/2/2003)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id22" id="to-5-2-2003" name="to-5-2-2003">0.9.1 (3/21/2003 to 5/2/2003)</a></h2>
|
||||
<p>PyCrust is dead! Long live Py!</p>
|
||||
<ul class="simple">
|
||||
<li>Renamed <tt class="docutils literal"><span class="pre">PyCrust</span></tt> package to <tt class="docutils literal"><span class="pre">py</span></tt>.</li>
|
||||
@@ -365,8 +647,8 @@ base.</p>
|
||||
The current implementation of wxSTC can now handle lists this big.</p>
|
||||
<p>Improved handling of <tt class="docutils literal"><span class="pre">sys.path</span></tt> to mimic the standard Python shell.</p>
|
||||
</div>
|
||||
<div class="section" id="to-3-20-2003">
|
||||
<h2><a class="toc-backref" href="#id23" name="to-3-20-2003">0.9 (2/27/2003 to 3/20/2003)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id23" id="to-3-20-2003" name="to-3-20-2003">0.9 (2/27/2003 to 3/20/2003)</a></h2>
|
||||
<p>Added fontIncrease, fontDecrease, fontDefault signals, receivers and
|
||||
keybindings:</p>
|
||||
<pre class="literal-block">
|
||||
@@ -397,8 +679,8 @@ except NameError:
|
||||
</pre>
|
||||
<p>Added <tt class="docutils literal"><span class="pre">wxd</span></tt> directory with decoration classes.</p>
|
||||
</div>
|
||||
<div class="section" id="to-2-26-2003">
|
||||
<h2><a class="toc-backref" href="#id24" name="to-2-26-2003">0.8.2 (1/5/2003 to 2/26/2003)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id24" id="to-2-26-2003" name="to-2-26-2003">0.8.2 (1/5/2003 to 2/26/2003)</a></h2>
|
||||
<p>Wrapped <tt class="docutils literal"><span class="pre">sys.ps1</span></tt>, <tt class="docutils literal"><span class="pre">sys.ps2</span></tt>, and <tt class="docutils literal"><span class="pre">sys.ps3</span></tt> in <tt class="docutils literal"><span class="pre">str()</span></tt>.
|
||||
(Thanks, Kieran Holland.)</p>
|
||||
<p>Fixed minor things found by PyChecker.</p>
|
||||
@@ -432,8 +714,8 @@ func = 3 .
|
||||
</pre>
|
||||
<p>More Filling!!! The namespace tree is now dynamically updated.</p>
|
||||
</div>
|
||||
<div class="section" id="to-12-25-2002">
|
||||
<h2><a class="toc-backref" href="#id25" name="to-12-25-2002">0.8.1 (12/20/2002 to 12/25/2002)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id25" id="to-12-25-2002" name="to-12-25-2002">0.8.1 (12/20/2002 to 12/25/2002)</a></h2>
|
||||
<p>Improved keyboard handling with Autocomplete active. You can now use
|
||||
Enter as well as Tab to select an item from the list.</p>
|
||||
<p>Disabled autocomplete for lists of 2000 items or more. The current
|
||||
@@ -444,8 +726,8 @@ coming directly from the source code. (Hmmm. Sounds like someone is
|
||||
doing some decorating. I wonder where that would be helpful? <wink>)</p>
|
||||
<p>Fixed handling of icon. Added <tt class="docutils literal"><span class="pre">images.py</span></tt> file.</p>
|
||||
</div>
|
||||
<div class="section" id="to-12-16-2002">
|
||||
<h2><a class="toc-backref" href="#id26" name="to-12-16-2002">0.8 (10/29/2002 to 12/16/2002)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id26" id="to-12-16-2002" name="to-12-16-2002">0.8 (10/29/2002 to 12/16/2002)</a></h2>
|
||||
<p>Added "help" to startup banner info.</p>
|
||||
<p>Made all <tt class="docutils literal"><span class="pre">wx</span></tt> and <tt class="docutils literal"><span class="pre">stc</span></tt> imports explicit. No more <tt class="docutils literal"><span class="pre">import</span> <span class="pre">*</span></tt>.</p>
|
||||
<p>Replaced use of the <tt class="docutils literal"><span class="pre">wx</span></tt> module's <tt class="docutils literal"><span class="pre">true</span></tt> and <tt class="docutils literal"><span class="pre">false</span></tt> with
|
||||
@@ -471,8 +753,8 @@ Platform: linux2
|
||||
<p>Added <tt class="docutils literal"><span class="pre">time.sleep()</span></tt> in <tt class="docutils literal"><span class="pre">readline()</span></tt> and <tt class="docutils literal"><span class="pre">OnIdle()</span></tt> event
|
||||
handler to free up the CPU.</p>
|
||||
</div>
|
||||
<div class="section" id="to-8-27-2002">
|
||||
<h2><a class="toc-backref" href="#id27" name="to-8-27-2002">0.7.2 (2/22/2002 to 8/27/2002)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id27" id="to-8-27-2002" name="to-8-27-2002">0.7.2 (2/22/2002 to 8/27/2002)</a></h2>
|
||||
<p>Tweaked <tt class="docutils literal"><span class="pre">getAttributeNames()</span></tt> to pick up a few more attributes:</p>
|
||||
<pre class="literal-block">
|
||||
'__bases__', '__class__', '__dict__', '__name__', 'func_closure',
|
||||
@@ -509,8 +791,8 @@ to Raul Cota for pointing this out.</p>
|
||||
boxes. Renamed <tt class="docutils literal"><span class="pre">readIn</span></tt> to <tt class="docutils literal"><span class="pre">readline</span></tt> and <tt class="docutils literal"><span class="pre">readRaw</span></tt> to
|
||||
<tt class="docutils literal"><span class="pre">raw_input</span></tt>.</p>
|
||||
</div>
|
||||
<div class="section" id="to-2-21-2002">
|
||||
<h2><a class="toc-backref" href="#id28" name="to-2-21-2002">0.7.1 (12/12/2001 to 2/21/2002)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id28" id="to-2-21-2002" name="to-2-21-2002">0.7.1 (12/12/2001 to 2/21/2002)</a></h2>
|
||||
<p>Fixed <tt class="docutils literal"><span class="pre">OnChar()</span></tt> issues effecting European keyboards, as reported by
|
||||
Jean-Michel Fauth.</p>
|
||||
<p>Fixed <tt class="docutils literal"><span class="pre">introspect.py</span></tt> issue with xmlrpc objects reported by Kevin
|
||||
@@ -536,8 +818,8 @@ to insert from history - Shift+Up and Shift+Down.</p>
|
||||
<p>Better call tips on objects with <tt class="docutils literal"><span class="pre">__call__</span></tt> methods.</p>
|
||||
<p>Improved call tip positioning calculation.</p>
|
||||
</div>
|
||||
<div class="section" id="to-12-11-2001">
|
||||
<h2><a class="toc-backref" href="#id29" name="to-12-11-2001">0.7 (10/15/2001 to 12/11/2001)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id29" id="to-12-11-2001" name="to-12-11-2001">0.7 (10/15/2001 to 12/11/2001)</a></h2>
|
||||
<p>Changed how command history retrieval functions work. Added Alt-P,
|
||||
Alt-N as keybindings for Retrieve-Previous, Retrieve-Next.</p>
|
||||
<p>Added full support for multi-line commands, similar to IDLE.</p>
|
||||
@@ -560,8 +842,8 @@ package/module name conflicts that kept you from doing <tt class="docutils liter
|
||||
<p>Removed the <tt class="docutils literal"><span class="pre">__date__</span></tt> property from all modules.</p>
|
||||
<p>Fixed bug in <tt class="docutils literal"><span class="pre">introspect.getCallTip()</span></tt>, reported by Kevin Altis.</p>
|
||||
</div>
|
||||
<div class="section" id="to-10-12-2001">
|
||||
<h2><a class="toc-backref" href="#id30" name="to-10-12-2001">0.6.1 (9/19/2001 to 10/12/2001)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id30" id="to-10-12-2001" name="to-10-12-2001">0.6.1 (9/19/2001 to 10/12/2001)</a></h2>
|
||||
<p>Changed <tt class="docutils literal"><span class="pre">Shell.run()</span></tt> to always position to the end of existing
|
||||
text, as suggested by Raul Cota.</p>
|
||||
<p>Changed <tt class="docutils literal"><span class="pre">introspect.getAllAttributeNames()</span></tt> to break circular
|
||||
@@ -578,8 +860,8 @@ platform where the font was 2 points larger than what was specified.</p>
|
||||
ZODB objects that are asleep - in a "ghost" state. Otherwise it
|
||||
returns incomplete info.</p>
|
||||
</div>
|
||||
<div class="section" id="to-9-12-2001">
|
||||
<h2><a class="toc-backref" href="#id31" name="to-9-12-2001">0.6 (8/21/2001 to 9/12/2001)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id31" id="to-9-12-2001" name="to-9-12-2001">0.6 (8/21/2001 to 9/12/2001)</a></h2>
|
||||
<p>Added <tt class="docutils literal"><span class="pre">PyFilling.py</span></tt> and <tt class="docutils literal"><span class="pre">filling.py</span></tt>.</p>
|
||||
<p><tt class="docutils literal"><span class="pre">PyShell.py</span></tt> and <tt class="docutils literal"><span class="pre">PyFilling.py</span></tt> can now be run standalone, as well
|
||||
as <tt class="docutils literal"><span class="pre">PyCrust.py</span></tt>.</p>
|
||||
@@ -599,8 +881,8 @@ sys.path.insert(0, os.curdir)
|
||||
</pre>
|
||||
<p>Added support for distutils installations.</p>
|
||||
</div>
|
||||
<div class="section" id="to-8-20-2001">
|
||||
<h2><a class="toc-backref" href="#id32" name="to-8-20-2001">0.5.4 (8/17/2001 to 8/20/2001)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id32" id="to-8-20-2001" name="to-8-20-2001">0.5.4 (8/17/2001 to 8/20/2001)</a></h2>
|
||||
<p>Changed default font size under Linux to:</p>
|
||||
<pre class="literal-block">
|
||||
'size' : 12,
|
||||
@@ -617,15 +899,15 @@ demo.</p>
|
||||
<p>Split <tt class="docutils literal"><span class="pre">PyCrust.py</span></tt> into <tt class="docutils literal"><span class="pre">PyCrust.py</span></tt> and <tt class="docutils literal"><span class="pre">PyShell.py</span></tt> in
|
||||
anticipation of <tt class="docutils literal"><span class="pre">PyFilling.py</span></tt>.</p>
|
||||
</div>
|
||||
<div class="section" id="id2">
|
||||
<h2><a class="toc-backref" href="#id33" name="id2">0.5.3 (8/16/2001)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id33" id="id2" name="id2">0.5.3 (8/16/2001)</a></h2>
|
||||
<p>Added patch to <tt class="docutils literal"><span class="pre">PyCrust.py</span></tt> to fix wxPython bug:</p>
|
||||
<pre class="literal-block">
|
||||
wxID_SELECTALL = NewId() # This *should* be defined by wxPython.
|
||||
</pre>
|
||||
</div>
|
||||
<div class="section" id="to-8-15-2001">
|
||||
<h2><a class="toc-backref" href="#id34" name="to-8-15-2001">0.5.2 (8/14/2001 to 8/15/2001)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id34" id="to-8-15-2001" name="to-8-15-2001">0.5.2 (8/14/2001 to 8/15/2001)</a></h2>
|
||||
<p>Shortened module names by dropping "PyCrust" as a prefix.</p>
|
||||
<p>Changed <tt class="docutils literal"><span class="pre">version</span></tt> to <tt class="docutils literal"><span class="pre">VERSION</span></tt> in <tt class="docutils literal"><span class="pre">version</span></tt> module.</p>
|
||||
<p>Added Options menu to PyCrust application.</p>
|
||||
@@ -635,8 +917,8 @@ There just wasn't enough non-gui code to justify the separation.
|
||||
Plus, Shell will be much easier for gui toolkits/designers to deal
|
||||
with now.</p>
|
||||
</div>
|
||||
<div class="section" id="to-8-14-2001">
|
||||
<h2><a class="toc-backref" href="#id35" name="to-8-14-2001">0.5.1 (8/10/2001 to 8/14/2001)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id35" id="to-8-14-2001" name="to-8-14-2001">0.5.1 (8/10/2001 to 8/14/2001)</a></h2>
|
||||
<p>Added <tt class="docutils literal"><span class="pre">introspect</span></tt> module.</p>
|
||||
<p>Moved some functionality from <tt class="docutils literal"><span class="pre">PyCrustInterp</span></tt> to <tt class="docutils literal"><span class="pre">introspect</span></tt>.</p>
|
||||
<p>Changed <tt class="docutils literal"><span class="pre">introspect.getRoot()</span></tt> to no longer remove whitespace from
|
||||
@@ -687,32 +969,32 @@ exclude one or the other or both with:</p>
|
||||
>>> shell.editor.autoCompleteExcludeDouble = 1
|
||||
</pre>
|
||||
</div>
|
||||
<div class="section" id="id3">
|
||||
<h2><a class="toc-backref" href="#id36" name="id3">0.5 (8/8/2001)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id36" id="id3" name="id3">0.5 (8/8/2001)</a></h2>
|
||||
<p>Mostly just a final version change before creating a release.</p>
|
||||
</div>
|
||||
<div class="section" id="to-8-7-2001">
|
||||
<h2><a class="toc-backref" href="#id37" name="to-8-7-2001">0.4 (8/4/2001 to 8/7/2001)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id37" id="to-8-7-2001" name="to-8-7-2001">0.4 (8/4/2001 to 8/7/2001)</a></h2>
|
||||
<p>Changed version/revision handling.</p>
|
||||
<p>Fixed bugs.</p>
|
||||
</div>
|
||||
<div class="section" id="to-8-3-2001">
|
||||
<h2><a class="toc-backref" href="#id38" name="to-8-3-2001">0.3 (8/2/2001 to 8/3/2001)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id38" id="to-8-3-2001" name="to-8-3-2001">0.3 (8/2/2001 to 8/3/2001)</a></h2>
|
||||
<p>Removed lots of cruft.</p>
|
||||
<p>Added lots of docstrings.</p>
|
||||
<p>Imported to CVS repository at SourceForge.</p>
|
||||
<p>Added call tips.</p>
|
||||
</div>
|
||||
<div class="section" id="to-8-2-2001">
|
||||
<h2><a class="toc-backref" href="#id39" name="to-8-2-2001">0.2 (7/30/2001 to 8/2/2001)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id39" id="to-8-2-2001" name="to-8-2-2001">0.2 (7/30/2001 to 8/2/2001)</a></h2>
|
||||
<p>Renamed several files.</p>
|
||||
<p>Added command autocompletion.</p>
|
||||
<p>Added menus to PyCrust.py: File, Edit and Help.</p>
|
||||
<p>Added sample applications: <tt class="docutils literal"><span class="pre">PyCrustAlaCarte.py</span></tt>,
|
||||
<tt class="docutils literal"><span class="pre">PyCrustAlaMode.py</span></tt>, and <tt class="docutils literal"><span class="pre">PyCrustMinimus.py</span></tt>.</p>
|
||||
</div>
|
||||
<div class="section" id="to-7-19-2001">
|
||||
<h2><a class="toc-backref" href="#id40" name="to-7-19-2001">0.1 (7/1/2001 to 7/19/2001)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id40" id="to-7-19-2001" name="to-7-19-2001">0.1 (7/1/2001 to 7/19/2001)</a></h2>
|
||||
<p>Added basic syntax coloring much like Boa.</p>
|
||||
<p>Added read-only logging much like IDLE.</p>
|
||||
<p>Can retrieve a previous command by putting the cursor back on that
|
||||
@@ -724,8 +1006,8 @@ response.</p>
|
||||
<p>Home key honors the prompt.</p>
|
||||
<p>Created SourceForge account, but nothing was posted.</p>
|
||||
</div>
|
||||
<div class="section" id="in-the-beginning-there-was-pie-7-1-2001">
|
||||
<h2><a class="toc-backref" href="#id41" name="in-the-beginning-there-was-pie-7-1-2001">In the beginning, there was pie... (7/1/2001)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id41" id="in-the-beginning-there-was-pie-7-1-2001" name="in-the-beginning-there-was-pie-7-1-2001">In the beginning, there was pie... (7/1/2001)</a></h2>
|
||||
<p>Blame it all on IDLE, Boa and PythonWin. I was using all three, got
|
||||
frustrated with their dissimilarities, and began to let everyone know
|
||||
how I felt. At the same time, Scintilla looked like an interesting
|
||||
|
@@ -3,14 +3,296 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
|
||||
<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
|
||||
<title></title>
|
||||
<link rel="stylesheet" href="default.css" type="text/css" />
|
||||
<style type="text/css">
|
||||
|
||||
/*
|
||||
:Author: David Goodger
|
||||
:Contact: goodger@users.sourceforge.net
|
||||
:Date: $Date$
|
||||
:Revision: $Revision$
|
||||
:Copyright: This stylesheet has been placed in the public domain.
|
||||
|
||||
Default cascading style sheet for the HTML output of Docutils.
|
||||
|
||||
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
|
||||
customize this style sheet.
|
||||
*/
|
||||
|
||||
/* used to remove borders from tables and images */
|
||||
.borderless, table.borderless td, table.borderless th {
|
||||
border: 0 }
|
||||
|
||||
table.borderless td, table.borderless th {
|
||||
/* Override padding for "table.docutils td" with "! important".
|
||||
The right padding separates the table cells. */
|
||||
padding: 0 0.5em 0 0 ! important }
|
||||
|
||||
.first {
|
||||
/* Override more specific margin styles with "! important". */
|
||||
margin-top: 0 ! important }
|
||||
|
||||
.last, .with-subtitle {
|
||||
margin-bottom: 0 ! important }
|
||||
|
||||
.hidden {
|
||||
display: none }
|
||||
|
||||
a.toc-backref {
|
||||
text-decoration: none ;
|
||||
color: black }
|
||||
|
||||
blockquote.epigraph {
|
||||
margin: 2em 5em ; }
|
||||
|
||||
dl.docutils dd {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
||||
dl.docutils dt {
|
||||
font-weight: bold }
|
||||
*/
|
||||
|
||||
div.abstract {
|
||||
margin: 2em 5em }
|
||||
|
||||
div.abstract p.topic-title {
|
||||
font-weight: bold ;
|
||||
text-align: center }
|
||||
|
||||
div.admonition, 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.admonition p.admonition-title, 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.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 }
|
||||
|
||||
/* Uncomment (and remove this text!) to get reduced vertical space in
|
||||
compound paragraphs.
|
||||
div.compound .compound-first, div.compound .compound-middle {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
div.compound .compound-last, div.compound .compound-middle {
|
||||
margin-top: 0.5em }
|
||||
*/
|
||||
|
||||
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 ;
|
||||
margin-right: 2em }
|
||||
|
||||
div.footer, div.header {
|
||||
clear: both;
|
||||
font-size: smaller }
|
||||
|
||||
div.line-block {
|
||||
display: block ;
|
||||
margin-top: 1em ;
|
||||
margin-bottom: 1em }
|
||||
|
||||
div.line-block div.line-block {
|
||||
margin-top: 0 ;
|
||||
margin-bottom: 0 ;
|
||||
margin-left: 1.5em }
|
||||
|
||||
div.sidebar {
|
||||
margin-left: 1em ;
|
||||
border: medium outset ;
|
||||
padding: 1em ;
|
||||
background-color: #ffffee ;
|
||||
width: 40% ;
|
||||
float: right ;
|
||||
clear: right }
|
||||
|
||||
div.sidebar p.rubric {
|
||||
font-family: sans-serif ;
|
||||
font-size: medium }
|
||||
|
||||
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.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
||||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
||||
margin-top: 0.4em }
|
||||
|
||||
h1.title {
|
||||
text-align: center }
|
||||
|
||||
h2.subtitle {
|
||||
text-align: center }
|
||||
|
||||
hr.docutils {
|
||||
width: 75% }
|
||||
|
||||
img.align-left {
|
||||
clear: left }
|
||||
|
||||
img.align-right {
|
||||
clear: right }
|
||||
|
||||
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.attribution {
|
||||
text-align: right ;
|
||||
margin-left: 50% }
|
||||
|
||||
p.caption {
|
||||
font-style: italic }
|
||||
|
||||
p.credits {
|
||||
font-style: italic ;
|
||||
font-size: smaller }
|
||||
|
||||
p.label {
|
||||
white-space: nowrap }
|
||||
|
||||
p.rubric {
|
||||
font-weight: bold ;
|
||||
font-size: larger ;
|
||||
color: maroon ;
|
||||
text-align: center }
|
||||
|
||||
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.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.pre {
|
||||
white-space: pre }
|
||||
|
||||
span.problematic {
|
||||
color: red }
|
||||
|
||||
span.section-subtitle {
|
||||
/* font-size relative to parent (h1..h6 element) */
|
||||
font-size: 80% }
|
||||
|
||||
table.citation {
|
||||
border-left: solid 1px gray;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docinfo {
|
||||
margin: 2em 4em }
|
||||
|
||||
table.docutils {
|
||||
margin-top: 0.5em ;
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
table.footnote {
|
||||
border-left: solid 1px black;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docutils td, table.docutils th,
|
||||
table.docinfo td, table.docinfo th {
|
||||
padding-left: 0.5em ;
|
||||
padding-right: 0.5em ;
|
||||
vertical-align: top }
|
||||
|
||||
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
||||
font-weight: bold ;
|
||||
text-align: left ;
|
||||
white-space: nowrap ;
|
||||
padding-left: 0 }
|
||||
|
||||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
||||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
||||
font-size: 100% }
|
||||
|
||||
tt.docutils {
|
||||
background-color: #eeeeee }
|
||||
|
||||
ul.auto-toc {
|
||||
list-style-type: none }
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="document">
|
||||
<div class="section" id="wxpython-readme">
|
||||
<h1><a name="wxpython-readme">wxPython README</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="wxpython-readme" name="wxpython-readme">wxPython README</a></h1>
|
||||
<p>Welcome to the wonderful world of wxPython!</p>
|
||||
<p>So where do you go from here? The best thing to do is to run the demo
|
||||
and use its source code to help you learn how to use wxPython. Most
|
||||
@@ -38,8 +320,8 @@ easily be able to "mentally translate" from the C++ shown into Python.
|
||||
for a little help on this process.) Not all classes documented are
|
||||
available in Python, but most of the GUI related classes are.</p>
|
||||
</div>
|
||||
<div class="section" id="other-info">
|
||||
<h1><a name="other-info">Other Info</a></h1>
|
||||
<div class="section">
|
||||
<h1><a id="other-info" name="other-info">Other Info</a></h1>
|
||||
<p>Please also see the following files:</p>
|
||||
<blockquote>
|
||||
<dl class="docutils">
|
||||
|
@@ -3,13 +3,295 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
|
||||
<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
|
||||
<title>The wxPython wx Package</title>
|
||||
<meta name="author" content="Patrick K. O'Brien" />
|
||||
<meta name="author" content="Robin Dunn" />
|
||||
<meta name="organization" content="Orbtech" />
|
||||
<meta name="date" content="2004-03-26" />
|
||||
<link rel="stylesheet" href="default.css" type="text/css" />
|
||||
<style type="text/css">
|
||||
|
||||
/*
|
||||
:Author: David Goodger
|
||||
:Contact: goodger@users.sourceforge.net
|
||||
:Date: $Date$
|
||||
:Revision: $Revision$
|
||||
:Copyright: This stylesheet has been placed in the public domain.
|
||||
|
||||
Default cascading style sheet for the HTML output of Docutils.
|
||||
|
||||
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
|
||||
customize this style sheet.
|
||||
*/
|
||||
|
||||
/* used to remove borders from tables and images */
|
||||
.borderless, table.borderless td, table.borderless th {
|
||||
border: 0 }
|
||||
|
||||
table.borderless td, table.borderless th {
|
||||
/* Override padding for "table.docutils td" with "! important".
|
||||
The right padding separates the table cells. */
|
||||
padding: 0 0.5em 0 0 ! important }
|
||||
|
||||
.first {
|
||||
/* Override more specific margin styles with "! important". */
|
||||
margin-top: 0 ! important }
|
||||
|
||||
.last, .with-subtitle {
|
||||
margin-bottom: 0 ! important }
|
||||
|
||||
.hidden {
|
||||
display: none }
|
||||
|
||||
a.toc-backref {
|
||||
text-decoration: none ;
|
||||
color: black }
|
||||
|
||||
blockquote.epigraph {
|
||||
margin: 2em 5em ; }
|
||||
|
||||
dl.docutils dd {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
||||
dl.docutils dt {
|
||||
font-weight: bold }
|
||||
*/
|
||||
|
||||
div.abstract {
|
||||
margin: 2em 5em }
|
||||
|
||||
div.abstract p.topic-title {
|
||||
font-weight: bold ;
|
||||
text-align: center }
|
||||
|
||||
div.admonition, 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.admonition p.admonition-title, 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.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 }
|
||||
|
||||
/* Uncomment (and remove this text!) to get reduced vertical space in
|
||||
compound paragraphs.
|
||||
div.compound .compound-first, div.compound .compound-middle {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
div.compound .compound-last, div.compound .compound-middle {
|
||||
margin-top: 0.5em }
|
||||
*/
|
||||
|
||||
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 ;
|
||||
margin-right: 2em }
|
||||
|
||||
div.footer, div.header {
|
||||
clear: both;
|
||||
font-size: smaller }
|
||||
|
||||
div.line-block {
|
||||
display: block ;
|
||||
margin-top: 1em ;
|
||||
margin-bottom: 1em }
|
||||
|
||||
div.line-block div.line-block {
|
||||
margin-top: 0 ;
|
||||
margin-bottom: 0 ;
|
||||
margin-left: 1.5em }
|
||||
|
||||
div.sidebar {
|
||||
margin-left: 1em ;
|
||||
border: medium outset ;
|
||||
padding: 1em ;
|
||||
background-color: #ffffee ;
|
||||
width: 40% ;
|
||||
float: right ;
|
||||
clear: right }
|
||||
|
||||
div.sidebar p.rubric {
|
||||
font-family: sans-serif ;
|
||||
font-size: medium }
|
||||
|
||||
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.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
||||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
||||
margin-top: 0.4em }
|
||||
|
||||
h1.title {
|
||||
text-align: center }
|
||||
|
||||
h2.subtitle {
|
||||
text-align: center }
|
||||
|
||||
hr.docutils {
|
||||
width: 75% }
|
||||
|
||||
img.align-left {
|
||||
clear: left }
|
||||
|
||||
img.align-right {
|
||||
clear: right }
|
||||
|
||||
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.attribution {
|
||||
text-align: right ;
|
||||
margin-left: 50% }
|
||||
|
||||
p.caption {
|
||||
font-style: italic }
|
||||
|
||||
p.credits {
|
||||
font-style: italic ;
|
||||
font-size: smaller }
|
||||
|
||||
p.label {
|
||||
white-space: nowrap }
|
||||
|
||||
p.rubric {
|
||||
font-weight: bold ;
|
||||
font-size: larger ;
|
||||
color: maroon ;
|
||||
text-align: center }
|
||||
|
||||
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.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.pre {
|
||||
white-space: pre }
|
||||
|
||||
span.problematic {
|
||||
color: red }
|
||||
|
||||
span.section-subtitle {
|
||||
/* font-size relative to parent (h1..h6 element) */
|
||||
font-size: 80% }
|
||||
|
||||
table.citation {
|
||||
border-left: solid 1px gray;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docinfo {
|
||||
margin: 2em 4em }
|
||||
|
||||
table.docutils {
|
||||
margin-top: 0.5em ;
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
table.footnote {
|
||||
border-left: solid 1px black;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docutils td, table.docutils th,
|
||||
table.docinfo td, table.docinfo th {
|
||||
padding-left: 0.5em ;
|
||||
padding-right: 0.5em ;
|
||||
vertical-align: top }
|
||||
|
||||
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
||||
font-weight: bold ;
|
||||
text-align: left ;
|
||||
white-space: nowrap ;
|
||||
padding-left: 0 }
|
||||
|
||||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
||||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
||||
font-size: 100% }
|
||||
|
||||
tt.docutils {
|
||||
background-color: #eeeeee }
|
||||
|
||||
ul.auto-toc {
|
||||
list-style-type: none }
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="document" id="the-wxpython-wx-package">
|
||||
@@ -33,8 +315,8 @@
|
||||
<td>1.4</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="contents topic" id="contents">
|
||||
<p class="topic-title first"><a name="contents">Contents</a></p>
|
||||
<div class="contents topic">
|
||||
<p class="topic-title first"><a id="contents" name="contents">Contents</a></p>
|
||||
<ul class="simple">
|
||||
<li><a class="reference" href="#introduction" id="id2" name="id2">Introduction</a></li>
|
||||
<li><a class="reference" href="#why-change-anything" id="id3" name="id3">Why change anything?</a></li>
|
||||
@@ -46,8 +328,8 @@
|
||||
<li><a class="reference" href="#where-can-i-find-example-programs-using-the-new-wx-syntax" id="id9" name="id9">Where can I find example programs using the new wx syntax?</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="introduction">
|
||||
<h1><a class="toc-backref" href="#id2" name="introduction">Introduction</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id2" id="introduction" name="introduction">Introduction</a></h1>
|
||||
<p>In the begining there was Python, and Python had modules, and Python
|
||||
was good. But after a time Guido looked on Python and saw that Python
|
||||
needed organizational assistance, and so Guido took code from Python's
|
||||
@@ -69,8 +351,8 @@ have concerning the new wx package. Please also take a look at the
|
||||
<a class="reference" href="MigrationGuide.html">2.5 Migration Guide</a> to see notes about other big differences in
|
||||
this release.</p>
|
||||
</div>
|
||||
<div class="section" id="why-change-anything">
|
||||
<h1><a class="toc-backref" href="#id3" name="why-change-anything">Why change anything?</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id3" id="why-change-anything" name="why-change-anything">Why change anything?</a></h1>
|
||||
<p>This change is being made for a couple of reasons. The first reason
|
||||
is to discourage the use of <tt class="docutils literal"><span class="pre">import</span> <span class="pre">*</span></tt>, which is a dangerous
|
||||
technique that can create name conflicts and bloated namespaces.</p>
|
||||
@@ -93,8 +375,8 @@ class Frame(wx.Frame)
|
||||
the same thing (implement a new wx namespace and drop the "wx" prefix)
|
||||
and we want wxPython to lead the way.</p>
|
||||
</div>
|
||||
<div class="section" id="what-does-the-new-wx-package-do">
|
||||
<h1><a class="toc-backref" href="#id4" name="what-does-the-new-wx-package-do">What does the new wx package do?</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id4" id="what-does-the-new-wx-package-do" name="what-does-the-new-wx-package-do">What does the new wx package do?</a></h1>
|
||||
<p>As mentioned in the Introduction, wxPython 2.4.1 introduced a way of
|
||||
getting to this new syntax as quickly as possible. It would import
|
||||
the old names (like "wxFrame") from the old package and then create new
|
||||
@@ -108,8 +390,8 @@ populated with modules that simply import the new names and then
|
||||
complicated, but it is mostly automated and so it doesn't cause
|
||||
problems in most cases.</p>
|
||||
</div>
|
||||
<div class="section" id="will-any-of-this-effect-my-existing-code">
|
||||
<h1><a class="toc-backref" href="#id5" name="will-any-of-this-effect-my-existing-code">Will any of this effect my existing code?</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id5" id="will-any-of-this-effect-my-existing-code" name="will-any-of-this-effect-my-existing-code">Will any of this effect my existing code?</a></h1>
|
||||
<p>No. Your existing code will continue to work and be supported for
|
||||
some time. It will be up to you to decide when to switch to the new
|
||||
syntax. But all new documentation and code examples will use the new
|
||||
@@ -123,24 +405,24 @@ old code is depending on some of the implemtation details, or if you
|
||||
are using other things that have changed in the API. See the
|
||||
<a class="reference" href="MigrationGuide.html">Migration Guide</a> for more details.</p>
|
||||
</div>
|
||||
<div class="section" id="what-about-all-the-other-modules-like-grid-html-and-stc">
|
||||
<h1><a class="toc-backref" href="#id6" name="what-about-all-the-other-modules-like-grid-html-and-stc">What about all the other modules, like grid, html, and stc?</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id6" id="what-about-all-the-other-modules-like-grid-html-and-stc" name="what-about-all-the-other-modules-like-grid-html-and-stc">What about all the other modules, like grid, html, and stc?</a></h1>
|
||||
<p>There's more to the old wxPython than just the wxPython.wx module.
|
||||
And we've got those extra modules covered as well. Each of those
|
||||
modules (as well as the lib subpackage) has been moved to the new wx
|
||||
package and reverse-renamers have been placed in the wxPython package
|
||||
as needed.</p>
|
||||
</div>
|
||||
<div class="section" id="how-do-i-use-this-new-wx-package">
|
||||
<h1><a class="toc-backref" href="#id7" name="how-do-i-use-this-new-wx-package">How do I use this new wx package?</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id7" id="how-do-i-use-this-new-wx-package" name="how-do-i-use-this-new-wx-package">How do I use this new wx package?</a></h1>
|
||||
<p>The wx package is automatically created when you install wxPython
|
||||
version 2.4.1 or higher. So all you have to do is:</p>
|
||||
<pre class="literal-block">
|
||||
import wx
|
||||
</pre>
|
||||
</div>
|
||||
<div class="section" id="what-are-the-issues-with-converting-old-code-to-use-the-new-wx-package">
|
||||
<h1><a class="toc-backref" href="#id8" name="what-are-the-issues-with-converting-old-code-to-use-the-new-wx-package">What are the issues with converting old code to use the new wx package?</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id8" id="what-are-the-issues-with-converting-old-code-to-use-the-new-wx-package" name="what-are-the-issues-with-converting-old-code-to-use-the-new-wx-package">What are the issues with converting old code to use the new wx package?</a></h1>
|
||||
<p>Obviously, you need to change your import statements from:</p>
|
||||
<pre class="literal-block">
|
||||
from wxPython import wx
|
||||
@@ -161,8 +443,8 @@ class MyFrame(wx.Frame):
|
||||
<p>In most cases, existing code can be modified with a simple search and
|
||||
replace.</p>
|
||||
</div>
|
||||
<div class="section" id="where-can-i-find-example-programs-using-the-new-wx-syntax">
|
||||
<h1><a class="toc-backref" href="#id9" name="where-can-i-find-example-programs-using-the-new-wx-syntax">Where can I find example programs using the new wx syntax?</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id9" id="where-can-i-find-example-programs-using-the-new-wx-syntax" name="where-can-i-find-example-programs-using-the-new-wx-syntax">Where can I find example programs using the new wx syntax?</a></h1>
|
||||
<p>The wxPython demo application and most of the sample apps have been
|
||||
converted to use the new <tt class="docutils literal"><span class="pre">import</span> <span class="pre">wx</span></tt> style of programming with
|
||||
wxPython, so there are lots of examples to look at and to play with.
|
||||
|
@@ -3,12 +3,294 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
||||
<meta name="generator" content="Docutils 0.3.7: http://docutils.sourceforge.net/" />
|
||||
<meta name="generator" content="Docutils 0.4: http://docutils.sourceforge.net/" />
|
||||
<title>The wxPython Manual</title>
|
||||
<meta name="author" content="Patrick K. O'Brien" />
|
||||
<meta name="organization" content="Orbtech" />
|
||||
<meta name="date" content="2004-03-26" />
|
||||
<link rel="stylesheet" href="default.css" type="text/css" />
|
||||
<style type="text/css">
|
||||
|
||||
/*
|
||||
:Author: David Goodger
|
||||
:Contact: goodger@users.sourceforge.net
|
||||
:Date: $Date$
|
||||
:Revision: $Revision$
|
||||
:Copyright: This stylesheet has been placed in the public domain.
|
||||
|
||||
Default cascading style sheet for the HTML output of Docutils.
|
||||
|
||||
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
|
||||
customize this style sheet.
|
||||
*/
|
||||
|
||||
/* used to remove borders from tables and images */
|
||||
.borderless, table.borderless td, table.borderless th {
|
||||
border: 0 }
|
||||
|
||||
table.borderless td, table.borderless th {
|
||||
/* Override padding for "table.docutils td" with "! important".
|
||||
The right padding separates the table cells. */
|
||||
padding: 0 0.5em 0 0 ! important }
|
||||
|
||||
.first {
|
||||
/* Override more specific margin styles with "! important". */
|
||||
margin-top: 0 ! important }
|
||||
|
||||
.last, .with-subtitle {
|
||||
margin-bottom: 0 ! important }
|
||||
|
||||
.hidden {
|
||||
display: none }
|
||||
|
||||
a.toc-backref {
|
||||
text-decoration: none ;
|
||||
color: black }
|
||||
|
||||
blockquote.epigraph {
|
||||
margin: 2em 5em ; }
|
||||
|
||||
dl.docutils dd {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
||||
dl.docutils dt {
|
||||
font-weight: bold }
|
||||
*/
|
||||
|
||||
div.abstract {
|
||||
margin: 2em 5em }
|
||||
|
||||
div.abstract p.topic-title {
|
||||
font-weight: bold ;
|
||||
text-align: center }
|
||||
|
||||
div.admonition, 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.admonition p.admonition-title, 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.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 }
|
||||
|
||||
/* Uncomment (and remove this text!) to get reduced vertical space in
|
||||
compound paragraphs.
|
||||
div.compound .compound-first, div.compound .compound-middle {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
div.compound .compound-last, div.compound .compound-middle {
|
||||
margin-top: 0.5em }
|
||||
*/
|
||||
|
||||
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 ;
|
||||
margin-right: 2em }
|
||||
|
||||
div.footer, div.header {
|
||||
clear: both;
|
||||
font-size: smaller }
|
||||
|
||||
div.line-block {
|
||||
display: block ;
|
||||
margin-top: 1em ;
|
||||
margin-bottom: 1em }
|
||||
|
||||
div.line-block div.line-block {
|
||||
margin-top: 0 ;
|
||||
margin-bottom: 0 ;
|
||||
margin-left: 1.5em }
|
||||
|
||||
div.sidebar {
|
||||
margin-left: 1em ;
|
||||
border: medium outset ;
|
||||
padding: 1em ;
|
||||
background-color: #ffffee ;
|
||||
width: 40% ;
|
||||
float: right ;
|
||||
clear: right }
|
||||
|
||||
div.sidebar p.rubric {
|
||||
font-family: sans-serif ;
|
||||
font-size: medium }
|
||||
|
||||
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.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
||||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
||||
margin-top: 0.4em }
|
||||
|
||||
h1.title {
|
||||
text-align: center }
|
||||
|
||||
h2.subtitle {
|
||||
text-align: center }
|
||||
|
||||
hr.docutils {
|
||||
width: 75% }
|
||||
|
||||
img.align-left {
|
||||
clear: left }
|
||||
|
||||
img.align-right {
|
||||
clear: right }
|
||||
|
||||
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.attribution {
|
||||
text-align: right ;
|
||||
margin-left: 50% }
|
||||
|
||||
p.caption {
|
||||
font-style: italic }
|
||||
|
||||
p.credits {
|
||||
font-style: italic ;
|
||||
font-size: smaller }
|
||||
|
||||
p.label {
|
||||
white-space: nowrap }
|
||||
|
||||
p.rubric {
|
||||
font-weight: bold ;
|
||||
font-size: larger ;
|
||||
color: maroon ;
|
||||
text-align: center }
|
||||
|
||||
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.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.pre {
|
||||
white-space: pre }
|
||||
|
||||
span.problematic {
|
||||
color: red }
|
||||
|
||||
span.section-subtitle {
|
||||
/* font-size relative to parent (h1..h6 element) */
|
||||
font-size: 80% }
|
||||
|
||||
table.citation {
|
||||
border-left: solid 1px gray;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docinfo {
|
||||
margin: 2em 4em }
|
||||
|
||||
table.docutils {
|
||||
margin-top: 0.5em ;
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
table.footnote {
|
||||
border-left: solid 1px black;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docutils td, table.docutils th,
|
||||
table.docinfo td, table.docinfo th {
|
||||
padding-left: 0.5em ;
|
||||
padding-right: 0.5em ;
|
||||
vertical-align: top }
|
||||
|
||||
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
||||
font-weight: bold ;
|
||||
text-align: left ;
|
||||
white-space: nowrap ;
|
||||
padding-left: 0 }
|
||||
|
||||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
||||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
||||
font-size: 100% }
|
||||
|
||||
tt.docutils {
|
||||
background-color: #eeeeee }
|
||||
|
||||
ul.auto-toc {
|
||||
list-style-type: none }
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="document" id="the-wxpython-manual">
|
||||
@@ -32,8 +314,8 @@
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="contents topic" id="contents">
|
||||
<p class="topic-title first"><a name="contents">Contents</a></p>
|
||||
<div class="contents topic">
|
||||
<p class="topic-title first"><a id="contents" 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="#what-is-wxpython" id="id2" name="id2">What is wxPython?</a></li>
|
||||
@@ -93,8 +375,8 @@
|
||||
<li><a class="reference" href="#license" id="id46" name="id46">License</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="introduction">
|
||||
<h1><a class="toc-backref" href="#id1" name="introduction">Introduction</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id1" id="introduction" name="introduction">Introduction</a></h1>
|
||||
<p>This is a guide to the wxPython GUI toolkit, written <strong>by</strong> a Python
|
||||
programmer <strong>for</strong> his fellow Python programmers. It began as a
|
||||
simple translation of the wxWidgets documentation (which is written
|
||||
@@ -108,8 +390,8 @@ beans, dark chocolate, and large denomination currency. Better yet,
|
||||
buy huge quantities of my wxPython book (written with Robin Dunn) and
|
||||
send one to each of your friends, relatives, and coworkers.</p>
|
||||
</div>
|
||||
<div class="section" id="what-is-wxpython">
|
||||
<h1><a class="toc-backref" href="#id2" name="what-is-wxpython">What is wxPython?</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id2" id="what-is-wxpython" name="what-is-wxpython">What is wxPython?</a></h1>
|
||||
<p>wxPython is a GUI toolkit for the Python programming language. It
|
||||
allows Python programmers to create programs with a robust, highly
|
||||
functional graphical user interface, simply and easily. It is
|
||||
@@ -126,19 +408,19 @@ or unix-like systems, and Macintosh OS X.</p>
|
||||
<p>Since the language is Python, wxPython programs are simple, easy to
|
||||
write and easy to understand.</p>
|
||||
</div>
|
||||
<div class="section" id="wxpython-requirements">
|
||||
<h1><a class="toc-backref" href="#id3" name="wxpython-requirements">wxPython requirements</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id3" id="wxpython-requirements" name="wxpython-requirements">wxPython requirements</a></h1>
|
||||
<p>To make use of wxPython, you currently need one of the following
|
||||
setups.</p>
|
||||
<div class="section" id="ms-windows">
|
||||
<h2><a class="toc-backref" href="#id4" name="ms-windows">MS-Windows</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id4" id="ms-windows" name="ms-windows">MS-Windows</a></h2>
|
||||
<ul class="simple">
|
||||
<li>A 486 or higher PC running MS Windows.</li>
|
||||
<li>At least ?? MB of disk space.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="linux-or-unix">
|
||||
<h2><a class="toc-backref" href="#id5" name="linux-or-unix">Linux or Unix</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id5" id="linux-or-unix" name="linux-or-unix">Linux or Unix</a></h2>
|
||||
<ul class="simple">
|
||||
<li>Almost any C++ compiler, including GNU C++ (EGCS 1.1.1 or above).</li>
|
||||
<li>Almost any Unix workstation, and one of: GTK+ 1.2, GTK+ 2.0, Motif
|
||||
@@ -146,16 +428,16 @@ setups.</p>
|
||||
<li>At least ?? MB of disk space.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="mac-os-x">
|
||||
<h2><a class="toc-backref" href="#id6" name="mac-os-x">Mac OS X</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id6" id="mac-os-x" name="mac-os-x">Mac OS X</a></h2>
|
||||
<ul class="simple">
|
||||
<li>A PowerPC Mac running Mac OS X 10.x.</li>
|
||||
<li>At least ?? MB of disk space.</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="what-is-wxwidgets">
|
||||
<h1><a class="toc-backref" href="#id7" name="what-is-wxwidgets">What is wxWidgets?</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id7" id="what-is-wxwidgets" name="what-is-wxwidgets">What is wxWidgets?</a></h1>
|
||||
<p>wxWidgets is a C++ framework providing GUI (Graphical User Interface)
|
||||
and other facilities on more than one platform. Version 2 currently
|
||||
supports all desktop versions of MS Windows, Unix with GTK+, Unix with
|
||||
@@ -169,8 +451,8 @@ Roebling, Vadim Zeitlin, Vaclav Slavik and many others.</p>
|
||||
platforms related to Microsoft Windows, including 16-bit and 32-bit
|
||||
variants, unless otherwise stated. All trademarks are acknowledged.</p>
|
||||
</div>
|
||||
<div class="section" id="why-another-cross-platform-development-tool">
|
||||
<h1><a class="toc-backref" href="#id8" name="why-another-cross-platform-development-tool">Why another cross-platform development tool?</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id8" id="why-another-cross-platform-development-tool" name="why-another-cross-platform-development-tool">Why another cross-platform development tool?</a></h1>
|
||||
<p>wxWidgets was developed to provide a cheap and flexible way to
|
||||
maximize investment in GUI application development. While a number of
|
||||
commercial class libraries already existed for cross-platform
|
||||
@@ -244,8 +526,8 @@ the clipboard.</li>
|
||||
PNM, PCX).</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="wxpython-overview">
|
||||
<h1><a class="toc-backref" href="#id9" name="wxpython-overview">wxPython Overview</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id9" id="wxpython-overview" name="wxpython-overview">wxPython Overview</a></h1>
|
||||
<p>To set a wxPython application going, you will need to derive an App
|
||||
class and override App.OnInit.</p>
|
||||
<p>An application must have a top-level Frame or Dialog window. Each
|
||||
@@ -291,14 +573,14 @@ PathList. There's a miscellany of operating system and other
|
||||
functions.</p>
|
||||
<p>See also Classes by Category for a list of classes.</p>
|
||||
</div>
|
||||
<div class="section" id="utilities-and-libraries-supplied-with-wxpython">
|
||||
<h1><a class="toc-backref" href="#id10" name="utilities-and-libraries-supplied-with-wxpython">Utilities and libraries supplied with wxPython</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id10" id="utilities-and-libraries-supplied-with-wxpython" name="utilities-and-libraries-supplied-with-wxpython">Utilities and libraries supplied with wxPython</a></h1>
|
||||
<p>In addition to the core wxWidgets library, a number of further
|
||||
libraries and utilities are supplied with each distribution.</p>
|
||||
<p>[Need to list these.]</p>
|
||||
</div>
|
||||
<div class="section" id="creating-and-deleting-wxpython-objects">
|
||||
<h1><a class="toc-backref" href="#id11" name="creating-and-deleting-wxpython-objects">Creating and deleting wxPython objects</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id11" id="creating-and-deleting-wxpython-objects" name="creating-and-deleting-wxpython-objects">Creating and deleting wxPython objects</a></h1>
|
||||
<p>[This section needs to be reviewed.]</p>
|
||||
<!-- In general, classes derived from wxWindow must dynamically
|
||||
allocated with new and deleted with delete. If you delete a window,
|
||||
@@ -323,11 +605,11 @@ wxDC::SelectObject(wxNullBitmap) before deleting a drawing object
|
||||
that may be in use. Code that doesn't do this will probably work
|
||||
fine on some platforms, and then fail under Windows. -->
|
||||
</div>
|
||||
<div class="section" id="app-overview">
|
||||
<h1><a class="toc-backref" href="#id12" name="app-overview">App overview</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id12" id="app-overview" name="app-overview">App overview</a></h1>
|
||||
<p>Classes: wx.App</p>
|
||||
<div class="section" id="application-initialization">
|
||||
<h2><a class="toc-backref" href="#id13" name="application-initialization">Application initialization</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id13" id="application-initialization" name="application-initialization">Application initialization</a></h2>
|
||||
<p>The OnInit method defined for a class derived from wx.App will usually
|
||||
create a top window as a bare minimum.</p>
|
||||
<p>OnInit must return a boolean value to indicate whether processing
|
||||
@@ -365,8 +647,8 @@ if __name__ == '__main__':
|
||||
main()
|
||||
</pre>
|
||||
</div>
|
||||
<div class="section" id="application-shutdown">
|
||||
<h2><a class="toc-backref" href="#id14" name="application-shutdown">Application shutdown</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id14" id="application-shutdown" name="application-shutdown">Application shutdown</a></h2>
|
||||
<p>The application normally shuts down when the last of its top level
|
||||
windows is closed. This is normally the expected behaviour and means
|
||||
that it is enough to call Close() in response to the "Exit" menu
|
||||
@@ -385,8 +667,8 @@ created by the time OnExit finishes.</p>
|
||||
<p>[Need examples of objects needing cleanup to keep app from crashing.]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="sizer-overview">
|
||||
<h1><a class="toc-backref" href="#id15" name="sizer-overview">Sizer overview</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id15" id="sizer-overview" name="sizer-overview">Sizer overview</a></h1>
|
||||
<p>Classes: wx.Sizer, wx.GridSizer, wx.FlexGridSizer, wx.BoxSizer,
|
||||
wx.StaticBoxSizer, wx.NotebookSizer, wx.CreateButtonSizer</p>
|
||||
<table border="1" class="docutils">
|
||||
@@ -425,8 +707,8 @@ individual controls. Editors such as wxDesigner, wxrcedit, XRCed and
|
||||
wxWorkshop create dialogs based exclusively on sizers, practically
|
||||
forcing the user to create platform independent layouts without
|
||||
compromises.</p>
|
||||
<div class="section" id="the-idea-behind-sizers">
|
||||
<h2><a class="toc-backref" href="#id16" name="the-idea-behind-sizers">The idea behind sizers</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id16" id="the-idea-behind-sizers" name="the-idea-behind-sizers">The idea behind sizers</a></h2>
|
||||
<p>The layout algorithm used by sizers in wxPython is closely related to
|
||||
layout systems in other GUI toolkits, such as Java's AWT, the GTK
|
||||
toolkit or the Qt toolkit. It is based upon the idea of individual
|
||||
@@ -453,15 +735,15 @@ in a dialog or it fulfils a special task such as wrapping a static box
|
||||
around a dialog item (or another sizer). These sizers will be
|
||||
discussed one by one in the text below.</p>
|
||||
</div>
|
||||
<div class="section" id="common-features">
|
||||
<h2><a class="toc-backref" href="#id17" name="common-features">Common features</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id17" id="common-features" name="common-features">Common features</a></h2>
|
||||
<p>All sizers are containers, that is, they are used to lay out one
|
||||
dialog item (or several dialog items), which they contain. Such items
|
||||
are sometimes referred to as the children of the sizer. Independent
|
||||
of how the individual sizers lay out their children, all children have
|
||||
certain features in common:</p>
|
||||
<div class="section" id="a-minimal-size">
|
||||
<h3><a class="toc-backref" href="#id18" name="a-minimal-size">A minimal size</a></h3>
|
||||
<div class="section">
|
||||
<h3><a class="toc-backref" href="#id18" id="a-minimal-size" name="a-minimal-size">A minimal size</a></h3>
|
||||
<p>This minimal size is usually identical to the initial size of the
|
||||
controls and may either be set explicitly in the size field of the
|
||||
control constructor or may be calculated by wxPython, typically by
|
||||
@@ -472,8 +754,8 @@ thus require an explicit size. Some controls can calculate their
|
||||
height, but not their width (e.g. a single line text control):</p>
|
||||
<p>[Need graphics]</p>
|
||||
</div>
|
||||
<div class="section" id="a-border">
|
||||
<h3><a class="toc-backref" href="#id19" name="a-border">A border</a></h3>
|
||||
<div class="section">
|
||||
<h3><a class="toc-backref" href="#id19" id="a-border" name="a-border">A border</a></h3>
|
||||
<p>The border is just empty space and is used to separate dialog items in
|
||||
a dialog. This border can either be all around, or at any combination
|
||||
of sides such as only above and below the control. The thickness of
|
||||
@@ -482,8 +764,8 @@ samples show dialogs with only one dialog item (a button) and a border
|
||||
of 0, 5, and 10 pixels around the button:</p>
|
||||
<p>[Need graphics]</p>
|
||||
</div>
|
||||
<div class="section" id="an-alignment">
|
||||
<h3><a class="toc-backref" href="#id20" name="an-alignment">An alignment</a></h3>
|
||||
<div class="section">
|
||||
<h3><a class="toc-backref" href="#id20" id="an-alignment" name="an-alignment">An alignment</a></h3>
|
||||
<p>Often, a dialog item is given more space than its minimal size plus
|
||||
its border. Depending on what flags are used for the respective dialog
|
||||
item, the dialog item can be made to fill out the available space
|
||||
@@ -494,8 +776,8 @@ three buttons in a horizontal box sizer; one button is centred, one is
|
||||
aligned at the top, one is aligned at the bottom:</p>
|
||||
<p>[Need graphics]</p>
|
||||
</div>
|
||||
<div class="section" id="a-stretch-factor">
|
||||
<h3><a class="toc-backref" href="#id21" name="a-stretch-factor">A stretch factor</a></h3>
|
||||
<div class="section">
|
||||
<h3><a class="toc-backref" href="#id21" id="a-stretch-factor" name="a-stretch-factor">A stretch factor</a></h3>
|
||||
<p>If a sizer contains more than one child and it is offered more space
|
||||
than its children and their borders need, the question arises how to
|
||||
distribute the surplus space among the children. For this purpose, a
|
||||
@@ -513,8 +795,8 @@ have a stretch factor of zero and keep their initial width:</p>
|
||||
<p>Within wxDesigner, this stretch factor gets set from the Option menu.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="boxsizer">
|
||||
<h2><a class="toc-backref" href="#id22" name="boxsizer">BoxSizer</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id22" id="boxsizer" name="boxsizer">BoxSizer</a></h2>
|
||||
<p>BoxSizer can lay out its children either vertically or horizontally,
|
||||
depending on what flag is being used in its constructor. When using a
|
||||
vertical sizer, each child can be centered, aligned to the right or
|
||||
@@ -527,14 +809,14 @@ horizontally. The following sample shows the same dialog as in the
|
||||
last sample, only the box sizer is a vertical box sizer now:</p>
|
||||
<p>[Need graphics]</p>
|
||||
</div>
|
||||
<div class="section" id="staticboxsizer">
|
||||
<h2><a class="toc-backref" href="#id23" name="staticboxsizer">StaticBoxSizer</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id23" id="staticboxsizer" name="staticboxsizer">StaticBoxSizer</a></h2>
|
||||
<p>StaticBoxSixer is the same as a BoxSizer, but surrounded by a static
|
||||
box. Here is a sample:</p>
|
||||
<p>[Need graphics]</p>
|
||||
</div>
|
||||
<div class="section" id="gridsizer">
|
||||
<h2><a class="toc-backref" href="#id24" name="gridsizer">GridSizer</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id24" id="gridsizer" name="gridsizer">GridSizer</a></h2>
|
||||
<p>GridSizer is a two-dimensional sizer. All children are given the same
|
||||
size, which is the minimal size required by the biggest child, in this
|
||||
case the text control in the left bottom border. Either the number of
|
||||
@@ -542,8 +824,8 @@ columns or the number or rows is fixed and the grid sizer will grow in
|
||||
the respectively other orientation if new children are added:</p>
|
||||
<p>[Need graphics]</p>
|
||||
</div>
|
||||
<div class="section" id="flexgridsizer">
|
||||
<h2><a class="toc-backref" href="#id25" name="flexgridsizer">FlexGridSizer</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id25" id="flexgridsizer" name="flexgridsizer">FlexGridSizer</a></h2>
|
||||
<p>Another two-dimensional sizer derived from GridSizer. The width of
|
||||
each column and the height of each row are calculated individually
|
||||
according the minimal requirements from the respectively biggest
|
||||
@@ -553,16 +835,16 @@ it requested. The following sample shows the same dialog as the one
|
||||
above, but using a flex grid sizer:</p>
|
||||
<p>[Need graphics]</p>
|
||||
</div>
|
||||
<div class="section" id="notebooksizer">
|
||||
<h2><a class="toc-backref" href="#id26" name="notebooksizer">NotebookSizer</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id26" id="notebooksizer" name="notebooksizer">NotebookSizer</a></h2>
|
||||
<p>NotebookSizer can be used with notebooks. It calculates the size of
|
||||
each notebook page and sets the size of the notebook to the size of
|
||||
the biggest page plus some extra space required for the notebook tabs
|
||||
and decorations.</p>
|
||||
<p>[Need graphics]</p>
|
||||
</div>
|
||||
<div class="section" id="programming-with-boxsizer">
|
||||
<h2><a class="toc-backref" href="#id27" name="programming-with-boxsizer">Programming with BoxSizer</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id27" id="programming-with-boxsizer" name="programming-with-boxsizer">Programming with BoxSizer</a></h2>
|
||||
<p>The basic idea behind a BoxSizer is that windows will most often be
|
||||
laid out in rather simple basic geometry, typically in a row or a
|
||||
column or several hierarchies of either.</p>
|
||||
@@ -615,16 +897,16 @@ that the entire behaviour of a sizer and its children can be
|
||||
controlled by the three parameters of the Add() method.</p>
|
||||
<p>[Show code and graphic here.]</p>
|
||||
</div>
|
||||
<div class="section" id="programming-with-gridsizer">
|
||||
<h2><a class="toc-backref" href="#id28" name="programming-with-gridsizer">Programming with GridSizer</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id28" id="programming-with-gridsizer" name="programming-with-gridsizer">Programming with GridSizer</a></h2>
|
||||
<p>GridSizer is a sizer which lays out its children in a two-dimensional
|
||||
table with all table fields having the same size, i.e. the width of
|
||||
each field is the width of the widest child, the height of each field
|
||||
is the height of the tallest child.</p>
|
||||
<p>[Show code and graphic here.]</p>
|
||||
</div>
|
||||
<div class="section" id="programming-with-flexgridsizer">
|
||||
<h2><a class="toc-backref" href="#id29" name="programming-with-flexgridsizer">Programming with FlexGridSizer</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id29" id="programming-with-flexgridsizer" name="programming-with-flexgridsizer">Programming with FlexGridSizer</a></h2>
|
||||
<p>FlexGridSizer is a sizer which lays out its children in a
|
||||
two-dimensional table with all table fields in one row having the same
|
||||
height and all fields in one column having the same width, but all
|
||||
@@ -632,8 +914,8 @@ rows or all columns are not necessarily the same height or width as in
|
||||
the GridSizer.</p>
|
||||
<p>[Show code and graphic here.]</p>
|
||||
</div>
|
||||
<div class="section" id="programming-with-notebooksizer">
|
||||
<h2><a class="toc-backref" href="#id30" name="programming-with-notebooksizer">Programming with NotebookSizer</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id30" id="programming-with-notebooksizer" name="programming-with-notebooksizer">Programming with NotebookSizer</a></h2>
|
||||
<p>NotebookSizer is a specialized sizer to make sizers work in connection
|
||||
with using notebooks. This sizer is different from any other sizer as
|
||||
you must not add any children to it - instead, it queries the notebook
|
||||
@@ -648,15 +930,15 @@ one example showing how to add a notebook page that the notebook sizer
|
||||
is aware of:</p>
|
||||
<p>[Show code and graphic here.]</p>
|
||||
</div>
|
||||
<div class="section" id="programming-with-staticboxsizer">
|
||||
<h2><a class="toc-backref" href="#id31" name="programming-with-staticboxsizer">Programming with StaticBoxSizer</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id31" id="programming-with-staticboxsizer" name="programming-with-staticboxsizer">Programming with StaticBoxSizer</a></h2>
|
||||
<p>StaticBoxSizer is a sizer derived from BoxSizer but adds a static box
|
||||
around the sizer. Note that this static box has to be created
|
||||
separately.</p>
|
||||
<p>[Show code and graphic here.]</p>
|
||||
</div>
|
||||
<div class="section" id="dialog-createbuttonsizer">
|
||||
<h2><a class="toc-backref" href="#id32" name="dialog-createbuttonsizer">Dialog.CreateButtonSizer</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id32" id="dialog-createbuttonsizer" name="dialog-createbuttonsizer">Dialog.CreateButtonSizer</a></h2>
|
||||
<p>As a convenience, the Dialog class has a CreateButtonSizer(flags)
|
||||
method that can be used to create a standard button sizer in which
|
||||
standard buttons are displayed. The following flags can be passed to
|
||||
@@ -705,8 +987,8 @@ wx.OK button will be default</td>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="date-and-time-classes-overview">
|
||||
<h1><a class="toc-backref" href="#id33" name="date-and-time-classes-overview">Date and time classes overview</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id33" id="date-and-time-classes-overview" name="date-and-time-classes-overview">Date and time classes overview</a></h1>
|
||||
<p>wxPython provides a set of powerful classes to work with dates and
|
||||
times. Some of the supported features of the DateTime class are:</p>
|
||||
<table border="1" class="docutils">
|
||||
@@ -737,8 +1019,8 @@ with them is fast</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="section" id="all-date-time-classes-at-a-glance">
|
||||
<h2><a class="toc-backref" href="#id34" name="all-date-time-classes-at-a-glance">All date/time classes at a glance</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id34" id="all-date-time-classes-at-a-glance" name="all-date-time-classes-at-a-glance">All date/time classes at a glance</a></h2>
|
||||
<p>There are 3 main classes: except DateTime itself which represents an
|
||||
absolute moment in time, there are also two classes - TimeSpan and
|
||||
DateSpan which represent the intervals of time.</p>
|
||||
@@ -748,8 +1030,8 @@ date is a holiday or not and DateTimeWorkDays which is a derivation of
|
||||
this class for which (only) Saturdays and Sundays are the holidays.
|
||||
See more about these classes in the discussion of the holidays.</p>
|
||||
</div>
|
||||
<div class="section" id="datetime-characteristics">
|
||||
<h2><a class="toc-backref" href="#id35" name="datetime-characteristics">DateTime characteristics</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id35" id="datetime-characteristics" name="datetime-characteristics">DateTime characteristics</a></h2>
|
||||
<p>DateTime stores the time as a signed number of milliseconds since the
|
||||
Epoch which is fixed, by convention, to Jan 1, 1970 - however this is
|
||||
not visible to the class users (in particular, dates prior to the
|
||||
@@ -772,8 +1054,8 @@ country, and even region, dependent). Future versions will probably
|
||||
have Julian calendar support as well and support for other calendars
|
||||
(Maya, Hebrew, Chinese...) is not ruled out.</p>
|
||||
</div>
|
||||
<div class="section" id="difference-between-datespan-and-timespan">
|
||||
<h2><a class="toc-backref" href="#id36" name="difference-between-datespan-and-timespan">Difference between DateSpan and TimeSpan</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id36" id="difference-between-datespan-and-timespan" name="difference-between-datespan-and-timespan">Difference between DateSpan and TimeSpan</a></h2>
|
||||
<p>While there is only one logical way to represent an absolute moment in
|
||||
the time (and hence only one DateTime class), there are at least two
|
||||
methods to describe a time interval.</p>
|
||||
@@ -801,8 +1083,8 @@ in the program, you should probably use TimeSpan instead of DateSpan
|
||||
in situations when you do need to understand what 'in a month' means
|
||||
(of course, it is just DateTime.Now() + DateSpan.Month()).</p>
|
||||
</div>
|
||||
<div class="section" id="date-arithmetics">
|
||||
<h2><a class="toc-backref" href="#id37" name="date-arithmetics">Date arithmetics</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id37" id="date-arithmetics" name="date-arithmetics">Date arithmetics</a></h2>
|
||||
<p>Many different operations may be performed with the dates, however not
|
||||
all of them make sense. For example, multiplying a date by a number
|
||||
is an invalid operation, even though multiplying either of the time
|
||||
@@ -838,8 +1120,8 @@ opposite time direction.</td>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="section" id="time-zone-considerations">
|
||||
<h2><a class="toc-backref" href="#id38" name="time-zone-considerations">Time zone considerations</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id38" id="time-zone-considerations" name="time-zone-considerations">Time zone considerations</a></h2>
|
||||
<p>Although the time is always stored internally in GMT, you will usually
|
||||
work in the local time zone. Because of this, all DateTime
|
||||
constructors and setters which take the broken down date assume that
|
||||
@@ -877,8 +1159,8 @@ job. I.e. you would just write</p>
|
||||
printf("The time is %s in local time zone", dt.FormatTime().c_str());
|
||||
printf("The time is %s in GMT", dt.FormatTime(wxDateTime::GMT).c_str());</p>
|
||||
</div>
|
||||
<div class="section" id="daylight-saving-time-dst">
|
||||
<h2><a class="toc-backref" href="#id39" name="daylight-saving-time-dst">Daylight saving time (DST)</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id39" id="daylight-saving-time-dst" name="daylight-saving-time-dst">Daylight saving time (DST)</a></h2>
|
||||
<p>DST (a.k.a. 'summer time') handling is always a delicate task which is
|
||||
better left to the operating system which is supposed to be configured
|
||||
by the administrator to behave correctly. Unfortunately, when doing
|
||||
@@ -894,17 +1176,17 @@ the future.</p>
|
||||
<p>The time zone handling methods use these functions too, so they are
|
||||
subject to the same limitations.</p>
|
||||
</div>
|
||||
<div class="section" id="datetime-and-holidays">
|
||||
<h2><a class="toc-backref" href="#id40" name="datetime-and-holidays">DateTime and Holidays</a></h2>
|
||||
<div class="section">
|
||||
<h2><a class="toc-backref" href="#id40" id="datetime-and-holidays" name="datetime-and-holidays">DateTime and Holidays</a></h2>
|
||||
<p>[TODO]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section" id="classes-by-category">
|
||||
<h1><a class="toc-backref" href="#id41" name="classes-by-category">Classes by category</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id41" id="classes-by-category" name="classes-by-category">Classes by category</a></h1>
|
||||
<p>Not done yet.</p>
|
||||
</div>
|
||||
<div class="section" id="id-constants">
|
||||
<h1><a class="toc-backref" href="#id42" name="id-constants">ID constants</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id42" id="id-constants" name="id-constants">ID constants</a></h1>
|
||||
<p>wxPython provides the following predefined ID constants:</p>
|
||||
<p>ID_ABORT
|
||||
ID_ABOUT
|
||||
@@ -964,8 +1246,8 @@ ID_UNDO
|
||||
ID_YES
|
||||
ID_YESTOALL</p>
|
||||
</div>
|
||||
<div class="section" id="source-document">
|
||||
<h1><a class="toc-backref" href="#id43" name="source-document">Source document</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id43" id="source-document" name="source-document">Source document</a></h1>
|
||||
<p>The source document is named wxPythonManual.txt and can be found by
|
||||
clicking the link at the bottom of this page (assuming you are viewing
|
||||
the html file). It is written using a fantastic formatting convention
|
||||
@@ -973,8 +1255,8 @@ called reStructuredText. The wxPythonManual.html file is created
|
||||
using the Docutils utilities, which can turn reStructuredText
|
||||
documents into html, xml, pdf, and even OpenOffice files.</p>
|
||||
</div>
|
||||
<div class="section" id="submitting-changes-to-the-source-document">
|
||||
<h1><a class="toc-backref" href="#id44" name="submitting-changes-to-the-source-document">Submitting changes to the source document</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id44" id="submitting-changes-to-the-source-document" name="submitting-changes-to-the-source-document">Submitting changes to the source document</a></h1>
|
||||
<p>Some items in the source text file look like this:</p>
|
||||
<pre class="literal-block">
|
||||
.. This is text from the wxWidgets documentation that needs to be
|
||||
@@ -991,8 +1273,8 @@ to you and will show my gratitude by adding your name to the list of
|
||||
contributors. (Contributors who also send me gifts of coffee,
|
||||
chocolate, or currency will have their names listed in bold.)</p>
|
||||
</div>
|
||||
<div class="section" id="contributors">
|
||||
<h1><a class="toc-backref" href="#id45" name="contributors">Contributors</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id45" id="contributors" name="contributors">Contributors</a></h1>
|
||||
<p>Individuals who contributed to this documentation (in order by last
|
||||
name):</p>
|
||||
<ul class="simple">
|
||||
@@ -1003,8 +1285,8 @@ name):</p>
|
||||
<li>Vadim Zeitlin</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="license">
|
||||
<h1><a class="toc-backref" href="#id46" name="license">License</a></h1>
|
||||
<div class="section">
|
||||
<h1><a class="toc-backref" href="#id46" id="license" name="license">License</a></h1>
|
||||
<p>This document began as a translation of the wxWidgets documentation.
|
||||
As such, it adheres to the same license, which is provided here:</p>
|
||||
<pre class="literal-block">
|
||||
|
Reference in New Issue
Block a user