The PyGTK Tutorial

Thanks to:

  • Nathan Hurst for the Plugs and Sockets section.
  • Alex Roitman for the FileChooser section.
  • Steve George for the example program illustrating editable CellRendererText and activatable CellRendererToggle.
  • Charles Wilson for the "How to Separate Callback Methods From Signal Handlers" section in the "Tips For Writing PyGTK Applications" chapter.

Much of Section 4.1, “Theory of Packing Boxes” was adapted from the PyGTK FAQ item 12.2 How does packing work (or how do I get my widget to stay the size I want) as it existed on 21 October 2008, and had been originally written by Christian Reis.

The Original GTK+ Tutorial

The following credits are from the original GTK+ 1.2 and GTK+ 2.0 Tutorials (from which this tutorial has mostly copied verbatim):

  • Bawer Dagdeviren, for the menus tutorial.
  • Raph Levien, for hello world ala GTK, widget packing, and general all around wisdom. He's also generously donated a home for this tutorial.
  • Peter Mattis, for the simplest GTK program.. and the ability to make it :)
  • Werner Koch for converting the original plain text to SGML, and the widget class hierarchy.
  • Mark Crichton for the menu factory code, and the table packing tutorial.
  • Owen Taylor for the EventBox widget section (and the patch to the distro). He's also responsible for the selections code and tutorial, as well as the sections on writing your own GTK widgets, and the example application. Thanks a lot Owen for all you help!
  • Mark VanderBoom for his wonderful work on the Notebook, Progress Bar, Dialogs, and File selection widgets. Thanks a lot Mark! You've been a great help.
  • Tim Janik for his great job on the Lists Widget. His excellent work on automatically extracting the widget tree and signal information from GTK. Thanks Tim :)
  • Rajat Datta for the excellent job on the Pixmap tutorial.
  • Michael K. Johnson for info and code for popup menus.
  • David Huggins-Daines for the Range Widgets and Tree Widget sections.
  • Stefan Mars for the CList section.
  • David A. Wheeler for portions of the text on GLib and various tutorial fixups and improvements. The GLib text was in turn based on material developed by Damon Chaplin
  • David King for style checking the entire document.

And to all who commented on and helped refine that document.