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 0.7.3.1 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 restEditor.py.
PythonCard requires Python 2.3 or later and wxPython 184.108.40.206 or later.
You can download the latest release at: http://sourceforge.net/project/showfiles.php?group_id=19015
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 220.127.116.11.
All the information you need about PythonCard can be found on the project web page at: http://pythoncard.sourceforge.net/
The installation instructions and walkthroughs are available on the main documentation page: http://pythoncard.sourceforge.net/documentation.html
For a list of most of the samples that have been built with PythonCard and screenshots of them in action go to: http://pythoncard.sourceforge.net/samples/samples.html
The kind people at SourceForge host the project: http://sourceforge.net/projects/pythoncard/
If you want to get involved the main contact point is the Mailing list: http://lists.sourceforge.net/lists/listinfo/pythoncard-users
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 resourceEditor.
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"
ka --- Kevin Altis email@example.com http://altis.pycs.net/
changelog.txt changes since release 0.7.3.1
Release 0.8 2004-08-18 getCommandLineArgs moved to util.py runOptionsDialog moved to templates.dialogs.runOptionsDialog.py dialog.py is now a thin wrapper around wx.lib.dialogs.py 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 label changed Calendar component to CAL_SEQUENTIAL_MONTH_SELECTION style added mp3player sample switched to using wx.lib.statbmp.GenStaticBitmap on GTK for Image component Created unit-test facility. defined ignore files for files that should not be imported to check for tests. runAllTests.py runs all tests from the current working directory down, minus ignored. added sample unit test class, in UnitTestSample.py Added two unit tests for LSystem. Pulled out drawAbstractFractal() to allow this. Changed console_server.py and minimalTest.py 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 examples 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 self.stack.app 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 twistedModel.py module to hold TwistedApplication added redraw method to Widget to simplify immediate redraws added event.target 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 dispatch.py and moved classes to event.py SetFocus -> setFocus Hide/Show -> visible attribute added visible, position, and size properties to tool windows added Tom Jacobs' montyhall sample added about.py module added About PythonCard dialog to codeEditor and resourceEditor added singleton.py module used by configuration.py, log.py, registry.py, and resource.py removed Ptr classes from isinstance checks removed old addresses052.py sample renamed res.py to resource.py 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 config.py to configuration.py 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 pom.py to component.py added test.py added timer.py module and simple Timer wrapper added deactivate event to Background updated sound.py to use wx.Sound changed model.py 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