Misplaced Pages

PyGTK

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Set of Python wrappers for the GTK graphical user interface library
Screenshot
Original author(s)James Henstridge
Developer(s)PyGTK Core development team
Final release2.24.0 / 1 April 2011; 13 years ago (2011-04-01)
Repository
Written inPython, C
Operating systemCross-platform
PlatformCross-platform
TypeWidget toolkit
LicenseLGPL
Websitepygtk.org
Main article: List of language bindings for GTK

PyGTK is a set of Python wrappers for the GTK graphical user interface library. PyGTK is free software and licensed under the LGPL. It is analogous to PyQt/PySide and wxPython, the Python wrappers for Qt and wxWidgets, respectively. Its original author is GNOME developer James Henstridge. There are six people in the core development team, with various other people who have submitted patches and bug reports. PyGTK has been selected as the environment of choice for applications running on One Laptop Per Child systems.

PyGTK will be phased out with the transition to GTK version 3 and be replaced with PyGObject, which uses GObject Introspection to generate bindings for Python and other languages on the fly. This is expected to eliminate the delay between GTK updates and corresponding language binding updates, as well as reduce maintenance burden on the developers.

Syntax

The Python code below will produce a 200x200 pixel window with the words "Hello World" inside.

import gtk
def create_window():
    window = gtk.Window()
    window.set_default_size(200, 200)
    window.connect("destroy", gtk.main_quit)
    label = gtk.Label("Hello World")
    window.add(label)
    label.show()
    window.show()
create_window()
gtk.main()

Notable applications that have used PyGTK

PyGTK has been used in a number of notable applications, some examples:

PyGObject

PyGObject
Repositorygitlab.gnome.org/GNOME/pygobject/blob/master/NEWS
Written inPython, C
TypeWidget toolkit
LicenseLGPL
Websitepygobject.readthedocs.io

PyGObject provides a wrapper for use in Python programs when accessing GObject libraries. GObject is an object system used by GTK, GLib, GIO, GStreamer and other libraries.

Like the GObject library itself, PyGObject is licensed under the GNU LGPL, so it is suitable for use in both free software and proprietary applications. It is already in use in many applications ranging from small single-purpose scripts to large full-featured applications.

PyGObject can dynamically access any GObject libraries that use GObject Introspection. It replaces the need for separate modules such as PyGTK, GIO and python-gnome to build a full GNOME 3.0 application. Once new functionality is added to GObject library it is instantly available as a Python API without the need for intermediate Python glue.

Notable applications that use PyGObject

PyGObject has replaced PyGTK, but it has taken a considerable amount of time for many programs to be ported. Most of the software listed here has an older version which used PyGTK.

See also

  • PyQt (Python wrapper for the Qt toolkit)
  • PySide (Alternative Python wrapper for the Qt toolkit)
  • wxPython (Python wrapper for the wx widgets collection)

References

  1. "Software I have written > PyGTK - Python bindings for GTK". James Henstridge's Homepage.
  2. "The people behind PyGTK".
  3. "PyGTK download page".
  4. "PyGObject". wiki.gnome.org.
  5. "Black Duck Open Hub: PyGObject".
  6. "GObject Introspection". Archived from the original on 2012-07-11.

External links

GTK and its applications
Platform
GTK
freedesktop.org
(shared)
Development
GUI designer, RAD
IDEs
GNOME
Cinnamon
Xfce
LXDE
Graphical shells
3rd-party
applications
Office
Education
Graphics
Internet
Audio
Video
Utilities
List of widget toolkits
Low-level platform-specific
On AmigaOS
On Classic Mac OS, macOS
On Windows
On Unix,
under X11
On BeOS, Haiku
On Android
CLI
Low Level Cross-platform
CLI
C
Java
High-level, platform-specific
On AmigaOS
On Classic Mac OS, macOS
Object Pascal
Objective-C, Swift
C++
CLI
On Windows
CLI
C++
Object Pascal
On Unix,
under X11
On Android
High-level, cross-platform
C
C++
Objective-C
CLI
Adobe Flash
Go
Haskell
Java
JavaScript
Common Lisp
Lua
Pascal
Object Pascal
Perl
PHP
Python
Ruby
Tcl
XML
shell
Dart
Categories: