ANN: PythonCard 0.8

Kevin Altis altis at
Mon Aug 23 17:33:26 CEST 2004

PythonCard is a GUI construction kit for building cross-platform 
desktop applications on Windows, Mac OS X, and Linux.

Release 0.8 includes over 50 sample applications and tools to help 
users build applications in Python, including codeEditor, findfiles, 
and resourceEditor (layout editor). A list of changes since release is at the end of this message. New samples include ataxx, 
lsystem, moderator, montyhall, mp3player, reversi, twistedEchoClient. 
There is also an experimental reStructuredText and HTML editor in the 
codeEditor directory called

PythonCard requires Python 2.3 or later and wxPython or later.

You can download the latest release at:

Please be sure to look at the migration_guide.txt file in the docs 
directory if you are upgrading from a previous release. Since the 
package name has changed, you can continue to use the older 
PythonCardPrototype package simultaneously with the new PythonCard 
package, but you must upgrade to wxPython

All the information you need about PythonCard can be found on the 
project web page at:

The installation instructions and walkthroughs are available on the 
main documentation page:

For a list of most of the samples that have been built with PythonCard 
and screenshots of them in action go to:

The kind people at SourceForge host the project:

If you want to get involved the main contact point is the Mailing list:

Additional Notes:
Remember to backup or just delete your old PythonCard directory before 
installing a new version, so that the old files aren't still in the 
package directory. If you installed a previous version of PythonCard on 
Windows using the binary installer, then you should be able to remove 
the old package via the Add/Remove Programs Control Panel.

The distutils installer will put the framework, components, docs, 
samples, and tools in Lib\site-packages or your Python directory 
(typically C:\Python23). Of course, on Linux and Mac OS X that path 
will be slightly different and have forward slashes.

Windows users should get a PythonCard menu in the Start->Programs menu 
with links to the documentation, samples, codeEditor, findfiles, and 

The tools and most of the samples will now keep their config and data 
file info in the "pythoncard_config" directory created by the 
framework. On Unix, the directory will be ~/pythoncard_config. On 
Windows, the directory varies as described in the following post:

So, if you run a PythonCard app with any of the runtime tools and 
select "Save Configuration" from the "Debug" menu, the window positions 
and sizes of your runtime windows (Shell, Message Watcher, etc.) will 
be saved in "pythoncard_config/pythoncard_config.txt" not the 
PythonCard directory. Likewise, when you change the text style used by 
the codeEditor via the "Styles..." menu item under the "Format" menu, 
the modification will be saved in "pythoncard_config/stc-styles.cfg"

Kevin Altis
altis at

changelog.txt changes since release

Release 0.8 2004-08-18
getCommandLineArgs moved to
runOptionsDialog moved to is now a thin wrapper around
   all dialog results now use DialogResults class instead of dictionary
   e.g. result.accepted instead of result['accepted']
   see dialogs sample and other samples and tools for examples of change
menuDialog changed to insert in place, added default naming based on 
changed Calendar component to CAL_SEQUENTIAL_MONTH_SELECTION style
added mp3player sample
switched to using wx.lib.statbmp.GenStaticBitmap on GTK for Image 
Created unit-test facility.
   defined ignore files for files that should not be imported to check 
for tests. runs all tests from the current working directory 
down, minus ignored.
   added sample unit test class, in
Added two unit tests for LSystem.  Pulled out drawAbstractFractal() to 
allow this.
Changed and so that importing the file 
didn't run code.
updated childWindow resource loading to better support standalones
refactored resourceEditor to query component spec for default
   set of attributes in on_componentAdd_command
refactored resourceEditor to dynamically build list of
   available Components instead of using static list
converted turtle sample to use Python modules for the script
fixed resourceEditor so it saves on Run and validates
   component names
changed all occurances of stack in resources to application
removed Stack class
   the application is now the "parent" of the main Background
   changed __init__ for Background and CustomDialog so they
     don't take a stack parameter
   changed childWindow function references are now self.application
added lsystem sample
added ToggleButton component
fixed enableCommand and disableCommand for components & menus
added ataxx sample
codeEditor now persists all View menu settings
added reversi (Othello) sample
made spirographInteractive its own sample
added restore (inverse of minimize) background window event
added twistedEchoClient sample
added module to hold TwistedApplication
added redraw method to Widget to simplify immediate redraws
added workaround for timer events
moved getStyleConfigPath to configuration module
renamed stc-styles.rc.cfg to stc-styles.cfg
removed unneeded WXMAC code blocks
removed get/set methods for position, size, foregroundColor,
   backgroundColor in Background and CustomDialog and
   replaced with properties
added removeListener method to EventQueue to enable the
   clean removal of the Message Watcher window when closing app
changed codeEditor file dialog default from *.py to *.*
fixed Windows border offset in resourceEditor by
   querying SystemSettings.GetMetric
added Bruce Eckel's moderator sample
updated Choice, ComboBox, List, RadioGroup to use
   'selection' and 'stringSelection' attributes instead of
   mixed-capability 'selected' and 'selection' attribute
   see migration guide for more info
added templates sub-package to hold common backgrounds
   and dialogs
updated all samples and tools to use lowercase skip()
removed CamelCase methods from BitmapCanvas (Draw -> draw)
changed Component __init__
   init underlying control before Widget class
   added makeNewId function
   removed postInit
   event binding is now part of component init
removed getId() from Widget, using GetId() calls in framework
*ROWLAND describe binding and spec changes here*
added SetValue workaround for TextArea component on Windows
removed and moved classes to
SetFocus -> setFocus
Hide/Show -> visible attribute
added visible, position, and size properties to tool windows
added Tom Jacobs' montyhall sample
added module
   added About PythonCard dialog to codeEditor and resourceEditor
added module
   used by,,, and
removed Ptr classes from isinstance checks
removed old sample
renamed to
replaced the use of __getattr__ and __setattr__ in Font,
   StatusBar, and Widget classes with property(), so those
   classes and components no longer have restrictive
   attribute access
   this change also eliminated the need for the
   _createAttributes and _getAttributeNames methods
changed to wx.Frame for runtime tools on Windows to make
   them the same across platforms
removed conditional code check PyCrust since PyCrust
   is a standard part of wxPython now
added createStatusBar method to Background and
   CustomDialog classes so applications can override that
   method if they want to use a more complex StatusBar
made statusbar.StatusBar a direct subclass of wx.StatusBar
renamed PythonCardApp to Application
refactored to
removed PythonCardObject and all references to it
removed ObjectMap and all references to it
removed ObjectLookup and all references to it
changed on_openBackground to on_initialize
renamed to
added module and simple Timer wrapper
added deactivate event to Background
updated to use wx.Sound
changed to require Python >= 2.3 and wxPython >= 2.5
converted DC methods to use tuples instead of separate
   x, y and width, height args
changed wx.NULL to None
switched to wx package
   from wxPython import changed to import wx
   changed wx.wx style prefixes to wx. except
     for wx.wxEVT constants
   changed wx.wxHtmlEasyPrinting to wx.html.HtmlEasyPrinting
changed default on Message Watcher to show unused events
PythonCardPrototype package renamed to PythonCard
   all references to Prototype updated in source and docs

More information about the Python-announce-list mailing list