Differences between revisions 103 and 104
Revision 103 as of 2007-06-02 20:49:47
Size: 8661
Editor: ns1
Comment:
Revision 104 as of 2007-06-02 20:52:00
Size: 8654
Editor: ns1
Comment:
Deletions are marked like this. Additions are marked like this.
Line 80: Line 80:
WikiPedia has an article [http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Python] describing several IDE's and GUI Builders. http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Python - WikiPedia article describing several IDE's and GUI Builders.

GUI Programming in Python

Python has a huge number of GUI frameworks (or toolkits) available for it, from Tkinter (traditionally bundled with Python, using Tk) to a number of other cross-platform solutions, as well as bindings to platform-specific (also known as "native") technologies.

Cross-platform Frameworks

The major cross-platform technologies upon which Python frameworks are based include Gtk, Qt, Tk and wxWidgets, although many other technologies provide actively maintained Python bindings.

  • Package

    Target

    Notes

    AnyGui

    many

    ("Anygui is no longer being actively developed or supported.") single source code runs on many GUI back-ends, including many in this table, plus ncurses

    Claro Graphics Toolkit

    Windows, GTK, MacOS

    An abstraction layer and clever layout engine that uses the native GUI widgets of each operating system - visit http://www.clarographics.org/

    Dabo

    WxPython

    Dabo is a 3-tier, cross-platform application development framework, written in Python atop the wxPython GUI toolkit - visit http://dabodev.com/

    EasyGui

    Tk

    EasyGUI is a module for very simple, very easy GUI programming in Python.

    FxPy

    FOX

    GnomePython

    Gnome

    Gnome Platform bindings: bonobo, bonoboui, gconf, gnome, gnomecanvas, gnomevfs, gnomeui

    GnomePythonDesktop

    Gnome

    Gnome Desktop bindings: metacity, nautilus, gnomeprint, gtksourceview, gtop, media-profiles, totem, wnck

    GnomePythonExtras

    Gnome

    Additional Gnome bindings: libegg, gda, gtkmozembed, gtkspell, gksu, gdl, gtkhtml2

    [:lwickjr/Modules/: GWiz]

    ["Tix"]

    GUI engine with integrated GUI builder. Need Alpha testers.

    IronPython

    .NET/Mono

    Python for (originally MS') .NET platform. See http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython for more info.

    ["Jython"]

    Java

    Jython is an implementation of the high-level, dynamic, object-oriented language Python seamlessly integrated with the Java platform. see http://www.jython.org/Project/index.html for more info.

    Nufox

    XUL (many)

    Nufox is a python, XUL toolkit written ontop of the Twisted Networking Framework and Nevow. The idea is that you should be able to write server-side cross platform XUL applications without writing XUL markup, with little javascript, all from the comfort of python, http://nufox.berlios.de/

    ["Ocean"]

    many

    GUI library. Python only "pythonic javax.swing". Model/View/Controller, skinning. See http://ocean.sourceforge.net/

    PyFltk

    FlTk

    supports Windows/Unix/Mac - visit http://pyfltk.sourceforge.net

    PyGtk

    Gtk

    Bindings for pango, atk, gtk and libglade

    ["PyGUI"]

    MacOS / Gtk

    Abstract, pythonic API encapsulating different platforms; At the moment runs on MacOS X/Carbon & Unix/Gtk

    ["PyKDE"]

    Qt / KDE

    Python wrappers for the [http://www.kde.org/ KDE] libraries

    PyPicoGUI

    [http://picogui.org/ PicoGUI]

    python library is included in the main PicoGUI release

    PyQt

    Qt

    Python bindings for the [http://www.trolltech.com/products/qt/ Qt] application development framework

    PySWT

    SWT

    PySWT is a Python Binding to the IBM Eclipse SWT library, to provide Python with a cross platform native looking GUI, see http://www.cs.nyu.edu/zilin/pyswt/pmwiki.php?n=PySWT.Introduction

    PythonCard

    WxWidgets

    Both a framework and GUI builder. Can include wxPython code in PythonCard apps

    PyUi

    OpenGL

    Specialized GUI Toolkit for generating GUIs for OpenGL programs.

    TkInter

    Tk

    Python's "standard" GUI library

    TkZinc

    Tk extension

    TkZinc is a extension of the Tk Canvas, with transparency, gradient, transformations

    VTK

    many

    The Visualization ToolKit (VTK) is an open source, freely available software system for 3D computer graphics, image processing, and visualization. See http://public.kitware.com/VTK/index.php for more info.

    ["Wax"]

    WxWidgets

    A wrapper to WxPython, easier and more "pythonic"

    WxPython

    WxWidgets

    supports Windows/Unix/Mac for now - visit http://www.wxwidgets.org

Platform-specific Frameworks

  • Package

    Target

    Notes

    BeThon

    BeOS

    MacPython

    MacOS

    Supports both OSX and OS9

    [http://pyobjc.sourceforge.net/ PyObjC]

    MacOSX

    Supports Cocoa Aqua GUIs on the Mac

    ["venster"]

    Windows

    [http://venster.sf.net Venster] is a highly native Windows GUI toolkit for Python based on the ctypes ffi library. The aim of Venster is to be a very lightweight wrapper around the standard Win32 API, making it easy to write slick windows applications in pure Python.

    Win32All

    Windows

    Also known by the names of its components: PythonWin (for the UI), Win32Com (for COM/ActiveX), Win32 (for some other parts of the API)

Anyone for a GuiProgrammingShootout?

GUI Design Tools and IDEs

CameronLaird's personal notes on Python GUIs [http://phaseit.net/claird/comp.lang.python/python_GUI.html] includes over 25 links to toolkits and techniques for connecting python with a GUI.

Other places to look are PythonGuis at Thinki, and http://sensei.co.il/python/ui.html .

Opendocs previously had some material on Qt programming with Python for on-line reading, but ownership of the domain appears to have lapsed. An online version of Boudewijn Rempt's book about PyQt for Qt 3, [http://www.commandprompt.com/community/pyqt/ GUI Programming with Python: QT Edition], is still available.

http://www.awaretek.com/toolkits.html - Choose Your GUI Toolkit: Find Your GUI Toolkit for Python based on your preferences. Quick cgi application which helps you make a choice. See also [http://awaretek.com/plf.html Python City].

http://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Python - WikiPedia article describing several IDE's and GUI Builders.

Editorial Notes

The above lists should be arranged in ascending alphabetical order - please respect this when adding new frameworks or tools.

Currently, this section is rather incomplete. Don't be too disappointed if you can't find the information you need, but please add any information you can contribute. It might be useful to have information about the GUIs and development tools in a fixed format to make them more easily comparable (see WebProgrammingTemplate and WebProgrammingTemplateHelp). Some categories: directly supported widgets, add-on widgets, layout managers, etc. Maybe it could answer the questions in ChoosingGuiToolkits for each toolkit.

GuiProgramming (last edited 2024-02-25 07:39:56 by krakengore)

Unable to edit the page? See the FrontPage for instructions.