Pyjamas-Desktop is a cross-platform applications widget set, using Webkit, for developing GUI applications. The same application can also, using Pyjamas, then be run unmodified as an AJAX Web application. PyWebkitGtk is currently the basis for Pyjamas-Desktop, and it is conceivable that there will exist a PyWebkitQt4, and Pyjamas-Desktop will run on top of that, as well.
Pyjamas-Desktop is similar to KiWi in that it provides an easy-to-use API, where you need not know - at all - that you are running PyGTK underneath.
Pyjamas-Desktop is actually a port of Pyjamas which is a web toolkit, so you also have the option of running Pyjamas-Desktop applications as web applications - unmodified. Pyjamas is a port of Google's Web Toolkit. (GWT is a Java to AJAX compiler and Web-based Applications Widget set, where Pyjamas is a Python to AJAX compiler).
The Pyjamas Widget set, documented here is exceptionally comprehensive and yet is easy to use, providing:
If the available widgets and the addon contributed widgets are not enough, then there is a simple tutorial on how to create your own widget. The underlying basis of all widgets is to encapsulate manipulation of an HTML DOM model, representing the screen.
Additional features, thanks to the underlying use of webkit, include:
It's specifically worth noting that due to Pyjamas-Desktop's history, it purely provides the "V" in "MVC" applications design, and that one option presently in use is the JSONRPC proxy client included, for communicating with the "MC" in the back-end of your application. In this way, the same application front-end source code can be compiled with PyJamas (into Javascript/AJAX) - with no modifications - to run with exactly the same back-end HTTP server that your Pyjamas-Desktop application uses.
Screenshots of some of the original GWT example apps, ported to Pyjamas and bug-fixed to run under Pyjamas-Desktop, are here. Also included is an Online Games and Dating web site, running as a Desktop application. The screenshot shows an online interactive game of Backgammon, with an Adobe Flash Flash Video plugin (also available as Free Software). FlashVid uses Red5 as its streaming Media server. Thanks to WebKit's support of NPAPI compliant media plugins, the fact that the web site source code is running as a Desktop app rather than in a web browser makes absolutely no difference: not one line of the 7,500 lines of front-end source code require modifications, to run in both environments.
The Pyjamas api is documented here. Also, as Pyjamas is based on Google's WebKit, the documentation for GWT 1.5 may prove useful. There is also a Control Widget Tutorial on how to create your own widget, which you may find useful if you find that the standard widget set does not cover what you want. It's very simply, doesn't involve or require AJAX, and requires a tiny bit of CSS style knowledge. A small bit of HTML DOM model knowledge is also required.
Pre-built amd64 .debs are available for download, providing pywebkitgtk-1.0, libwebkit-1.0-2 and libwebkit-dev, here:
Pyjamas-Desktop requires these patched versions of both Webkit and PyWebkitGtk, as of 01-Sep-2008. The patches are here if you do not have a 64-bit system or prefer to build from source:
Pyjamas-Desktop is available for download from PyPi and Sourceforge:
Pyjamas-Desktop is available as a git repository: