Fact-checked by Grok 2 weeks ago

PyGTK

PyGTK is a set of Python bindings for the GTK+ 2.x widget toolkit, providing an object-oriented interface that enables developers to create cross-platform graphical user interfaces (GUIs) in Python with simplified memory management and type handling compared to direct C programming. Originally developed to integrate Python with the GTK+ library, PyGTK emerged as a key tool for building desktop applications, particularly within the GNOME ecosystem, supporting features such as Unicode and bidirectional text handling, widget customization, and accessibility integration via the ATK framework. It is licensed under the GNU Lesser General Public License (LGPL), allowing both open-source and proprietary software development while ensuring the bindings themselves remain freely modifiable. The project reached its final major release, version 2.24.0, in 2011, and has since been unmaintained, with official recommendations directing new projects to its successor, PyGObject, which supports GTK+ 3.x and beyond for modern GUI development. Despite its deprecated status, PyGTK remains compatible with systems including , Windows (via installers), and macOS (with an ), and continues to power legacy applications due to its straightforward installation and extensive widget library.

Introduction

Definition and Purpose

PyGTK is a set of language bindings for the + graphical user interface () library, providing wrappers that allow developers to access GTK+ functionality directly from code. It specifically targets the GTK 2.x , enabling the creation of graphical interfaces without requiring direct interaction with the underlying C-based GTK+ codebase. By handling low-level details such as , , and type conversions, PyGTK simplifies the development process and reduces common sources of errors in GUI programming. The primary purpose of PyGTK is to empower Python programmers to build cross-platform desktop applications using GTK+ widgets, fostering and full-featured . It integrates seamlessly with desktop environment, allowing developers to create applications that leverage GNOME's ecosystem, including accessibility features through the ATK framework and support for and bidirectional text handling. This makes PyGTK particularly suitable for constructing robust, user-interactive programs within the GNOME project. PyGTK facilitates paradigms essential for modern GUIs, where applications respond dynamically to user inputs through an and signal mechanisms. It supports a wide array of standard widgets, such as windows, buttons, and menus, which can be instantiated and connected to callback functions to handle events like clicks or window closures. For contemporary versions beyond 2.x, developers have transitioned to its successor, PyGObject, which offers broader compatibility.

Licensing and Development

PyGTK is distributed as free software under the GNU Lesser General Public License (LGPL) version 2.1 or later, a permissive license that enables its integration into both open-source and proprietary applications without requiring the disclosure of source code for the encompassing software. The project was originally authored by James Henstridge, a developer, who initiated its development to provide Python bindings for the GTK+ toolkit. Subsequent maintenance was handled by the PyGTK Core development team under the auspices of project, with contributions from key figures including Johan Dahlin, Gustavo J. A. M. Carneiro, Paul Pogonyshev, Gian Mario Tagliaretti, John Stowers, and Dieter Verfaillie. The project's codebase is hosted in an archived repository on under the GNOME Archive namespace, reflecting its dormant status, while community involvement has centered on bug reports, patches, and enhancements aimed at ensuring stability for the GTK+ 2.x series, supporting versions from 2.8.x up to 2.24.x. Active development concluded in 2011 with the final stable release.

History

Origins and Early Development

PyGTK originated in the as part of project, aimed at providing bindings for the toolkit to enable developers to create graphical user interfaces more easily within and Unix environments. itself had been initiated in 1996 by developers of the image editing program as a alternative to proprietary toolkits like , with its first stable release ( 1.0) arriving in April 1998. desktop environment, launched in 1997 to offer a alternative to , quickly adopted as its core widget toolkit, creating a natural impetus for integration to broaden accessibility for scripting and . Early development of PyGTK was led by James Henstridge, a contributor, who released the initial version in 1998 to wrap the core APIs of , allowing Python programmers to avoid the complexities of direct programming for GUI tasks such as widget management and event handling. The bindings focused on providing a Pythonic interface to object hierarchy and signal system, motivated by the growing popularity of in open-source communities and the need for accessible GUI tools on systems where C-based development was cumbersome. By around 2000, the first stable bindings emerged, supporting fully and laying groundwork for compatibility with the upcoming series, which introduced enhancements like theming and improved . A key milestone in PyGTK's early growth was its integration with gnome-python, a companion package that extended the bindings to cover the broader GNOME ecosystem, including libraries for desktop utilities, configuration, and canvas widgets. This integration, beginning with joint releases in the late 1990s, facilitated the creation of full GNOME applications in Python and solidified PyGTK's role within the project's Python tooling stack.

Major Releases and End of Support

PyGTK's major releases closely tracked the evolution of the underlying GTK+ toolkit, with version 2.0.0 released on September 2, 2003, to align with GTK+ 2.0 and provide Python bindings for its widget set and related libraries. Subsequent stable releases included PyGTK 2.12.0 on September 24, 2007, which introduced enhancements for better integration with GNOME 2.20 and improved support for GTK+ 2.12 features such as advanced theming and accessibility. A minor update, PyGTK 2.12.1, followed on January 3, 2008, primarily addressing bug fixes and stability improvements to maintain compatibility with GTK+ 2.12. The final major release, PyGTK 2.24.0, was issued on April 1, 2011, fully supporting the GTK+ 2.24 API while incorporating bindings for all preceding GTK+ 2.x functionalities. This version marked the culmination of the 2.x series, with maintainer John Stowers announcing that no further major updates would be pursued, citing the project's shift toward GObject Introspection and the advent of GTK+ 3.x as key factors in halting active development. Post-2011, PyGTK received only sporadic bug-fix releases for legacy compatibility, but official support ended as resources pivoted to PyGObject for enhanced Python-GNOME integration and support for modern GTK versions.

Technical Overview

Core Features

PyGTK offers automatic through Python's garbage collection system, eliminating the need for manual allocation and deallocation of GTK+ resources that is required in C programming. It also provides seamless type conversion between Python objects and C structures used in GTK+, allowing developers to work with native types without explicit casting. Furthermore, PyGTK grants full access to the GTK+ 2.x widget set, including containers such as gtk.HBox, gtk.VBox, and gtk.Table for layout management, as well as cell renderers like gtk.CellRendererText and gtk.CellRendererPixbuf for displaying data in tree views. The library employs an event-driven programming model, where applications run within a main event loop invoked by functions like gtk.main(), processing user interactions asynchronously. This model relies on signals and callbacks to handle events, such as connecting a Python function to a widget's "clicked" signal for button presses or "key-press-event" for keyboard input, enabling responsive GUI behavior. PyGTK includes convenience wrappers that simplify complex operations, such as drag-and-drop functionality through interfaces like gtk.TreeDragDest and gtk.TreeDragSource for tree-based widgets. It also supports internationalization (i18n) by integrating with Python's gettext module, facilitating translation of user interface strings and handling of Unicode and bidirectional text via underlying GTK+ capabilities. Cross-platform compatibility is a key feature, with PyGTK applications running on Linux and other Unix-like systems, Windows, and macOS (requiring an X11 server on the latter).

Syntax and Basic Usage

PyGTK programs begin with importing the necessary modules and initializing the GTK library. The standard import sequence ensures compatibility with GTK+ 2.0 by specifying the version requirement before accessing the core GTK functionality: import pygtk; pygtk.require('2.0'); import gtk. Following the import, the GTK environment is initialized with gtk.init(), which sets up the default visual, connects to the windowing system, and prepares signal handlers for event processing. This step must occur before creating any widgets to ensure proper resource allocation and event handling. Basic usage in PyGTK revolves around creating widget instances, assembling them into a hierarchy, and entering the main event loop. Widgets are instantiated as Python objects, such as a top-level window with window = gtk.Window(gtk.WINDOW_TOPLEVEL), which provides a for other elements. Child widgets, like buttons, are added to parent containers using methods such as window.add(child_widget), establishing the structure without manual memory management or pointer handling typical in C-based GTK programming. Visibility is enabled with widget.show() or widget.show_all() for the entire hierarchy, after which the application enters the event-driven main loop via gtk.main(), processing user interactions until termination. This object-oriented approach leverages 's syntax for intuitive widget manipulation and layout. Event handling in PyGTK uses a signal connection mechanism, where widgets emit signals for actions like clicks, and callbacks respond accordingly. The syntax widget.connect("signal_name", callback_function) binds a Python function to the specified signal, such as "clicked" for a button press. For instance, connecting a window's "destroy" signal to gtk.main_quit() ensures the main loop exits upon closure, providing clean program termination. This declarative style simplifies integration of user events into the application logic. A representative example demonstrates these elements in a simple containing a :
python
import pygtk
pygtk.require('2.0')
import [gtk](/page/GTK)

gtk.init()

def on_button_clicked(widget):
    print "Button was clicked!"

window = [gtk](/page/GTK).Window([gtk](/page/GTK).WINDOW_TOPLEVEL)
window.set_title("PyGTK Example")
window.set_default_size(300, 200)
window.connect("destroy", [gtk](/page/GTK).main_quit)

button = [gtk](/page/GTK).Button("Click Me")
button.connect("clicked", on_button_clicked)
window.add(button)

window.show_all()
[gtk](/page/GTK).main()
This code creates a resizable , adds a labeled , connects its click to a callback that outputs a message, and runs the event loop, highlighting Py's Pythonic handling of components without low-level constructs.

Installation and Compatibility

System Requirements

PyGTK requires 2.3.5 or higher as its primary runtime environment, with official support extending to 2.7 in the final release version 2.24.2; while experimental compatibility with Python 3.x exists in certain custom builds, it is not officially supported and often requires additional patching. The core dependency is GTK+ 2.x, specifically up to version 2.24 for full coverage in PyGTK 2.24.2, along with supporting libraries including GLib 2.8 or later, for text rendering, and for graphics via the Pycairo binding (version 1.0.2 or higher). PyGTK is designed primarily for POSIX-compliant systems such as and other operating systems, where it integrates natively with the X11 display server. Support for Windows is available through all-in-one installers that bundle the necessary GTK+ runtime, typically using MSYS2 or environments. On macOS, PyGTK operates via to provide X11 compatibility, with installation possible through package managers like . There are no strict minimum requirements for CPU or RAM, as PyGTK's performance depends largely on the underlying GTK+ toolkit; however, it mandates an X11-compatible display server or equivalent for rendering graphical interfaces, with no built-in GPU acceleration since it relies on the software-based rendering of GTK+ 2.x. Due to the of GTK+ 2.x in modern distributions, PyGTK is not recommended for new development projects, as it may require manual installation of outdated dependencies that are no longer maintained or available in standard repositories.

Installation Methods

PyGTK can be installed on distributions using system package managers, which provide pre-built binaries compatible with the system's and installations. On older Debian-based systems such as (pre-20.04), the command sudo apt install python-gtk2 installs the necessary package. These packages are available only on older distributions that still support 2.x (pre-2020 releases); on modern systems, use source compilation or PyPI with a 2.x environment, or consider migrating to PyGObject. On older releases (pre-31), the equivalent is sudo dnf install pygtk2, which pulls in the PyGTK bindings for 2.x. These methods require administrative privileges and ensure dependencies like + development libraries are handled by the repository. The PyGTK package is available on PyPI as version 2.24.2, the final release supporting the full 2.24 , and can be installed via pip install PyGTK on systems with compatible 2.x and setups. However, it is often preferred to use distribution repositories for on supported older versions, as the PyPI source distribution may require manual resolution of system dependencies like libgtk2.0-dev on systems. For installation from source, download the tarball from the GNOME archive or historical FTP mirrors, then extract and run ./configure && make && make install in the source directory. This process requires prerequisites including pkg-config, 2.3.5 or higher, PyGObject 2.21.3 or higher, Pycairo 1.0.2 or higher, and 2.8.0 or higher development packages (e.g., libgtk2.0-dev on /). The configure step may need options like --prefix=/usr to match the system path or PKG_CONFIG_PATH adjustments if libraries are not detected. PyGTK's C extensions prevent native support for Python virtual environments on Linux, often leading to import errors when attempting isolated installations; workarounds like vext.pygtk exist but require system-wide PyGTK as a base. Common installation issues, such as errors about missing GTK headers during source builds, are typically resolved by installing the development package sudo apt install libgtk2.0-dev on / prior to configuration.

Relationship with PyGObject

Key Differences

PyGTK employs hand-written wrappers to create static bindings specifically for the , limiting its integration to that version's and requiring for . In contrast, PyGObject leverages (GI), a dynamic system that generates Python bindings at runtime from typelib metadata provided by C libraries, enabling seamless support for evolving APIs without recoding wrappers. This approach extends PyGObject's bindings beyond GTK to the full ecosystem, including libraries like , , , and WebKitGTK. The API scope of PyGTK is inherently restricted to the widgets, signals, and properties available in GTK+ 2.0, alongside exclusive compatibility with 2, which constrains its use for modern application development. PyGObject, however, encompasses the advanced features of GTK 3 and 4, such as CSS-based theming for customizable styling, for touch and multi-input interactions, and enhanced layout managers, while supporting 3.9 and later. These capabilities allow PyGObject to address contemporary UI requirements, like responsive designs and hardware-accelerated rendering, that PyGTK cannot accommodate due to its foundational ties to an outdated toolkit version. PyGObject resolves several idiosyncratic behaviors inherent to PyGTK's static design. For example, PyGTK's pygtk.require('2.0') call, used to enforce version compatibility and initialize the bindings, is obsolete in PyGObject, as GI handles versioning dynamically through loading. Additionally, importing the gtk module in PyGTK automatically set Python's default encoding to , a that PyGObject eliminates to avoid unintended global changes. Import syntax further diverges: PyGTK applications begin with import gtk, whereas PyGObject mandates from gi.repository import Gtk to access the introspected s. While PyGObject's introspection facilitates broader library coverage and easier updates, it occasionally requires developer overrides for intricate C-level interactions where static bindings in PyGTK provided direct optimizations. Overall, these differences position PyGObject as a more adaptable successor, prioritizing extensibility over the bespoke efficiency of PyGTK's hand-crafted wrappers.

Migration from PyGTK to PyGObject

Migrating code from PyGTK to PyGObject involves transitioning from static bindings to dynamic GObject Introspection-based bindings, which requires updating imports, API calls, and adapting to GTK 3.0 changes, as PyGObject does not support GTK 2.0 or mixing with PyGTK. Developers must first ensure PyGObject is installed, typically via pip install PyGObject on systems with the necessary dependencies like GTK 3 development libraries. This installation enables access to the gi module for importing repositories such as Gtk. The primary steps for migration include using automated tools for initial conversion, followed by manual adjustments. Begin by running the pygi-convert.sh script, available from the PyGObject repository, on source files to handle basic renaming tasks, such as changing gtk.Window() to Gtk.Window(). After conversion, update imports to the standard PyGObject format: from gi.repository import [Gtk](/page/GTK). Replace deprecated functions like gtk.main() with [Gtk](/page/GTK).main(), and port the application to GTK 3.0 semantics as outlined in the official GTK guide. For temporary compatibility during , enable the deprecated pygtkcompat module with from gi import pygtkcompat; pygtkcompat.enable(); pygtkcompat.enable_gtk(version='3.0') before importing modules, but remove it once the code is fully migrated, as it was deprecated in PyGObject 3.48 and removed in 3.52. Common changes encompass constructors, signal connections, and handling. For instance, creating a shifts from window = gtk.Window() in PyGTK to window = Gtk.Window() in PyGObject. setting often requires set_property() instead of direct attribute access, such as button.set_property("label", "Click me") rather than button.label = "Click me". Layout managers in GTK 3 differ, with no default expand behavior for containers like Gtk.Box, necessitating explicit calls like box.pack_start(child, True, True, 0) to achieve similar expansion. Constants must be updated, for example, gtk.MESSAGE_INFO becomes Gtk.MessageType.INFO. A semi-automated like pygi-convert.sh aids by renaming callsites and constants but requires verification and manual fixes for context-specific issues. Post-conversion, test for 3-specific behaviors, such as improved touch event handling or changes in theme rendering, to ensure compatibility. Challenges arise from APIs not fully introspected in GObject Introspection, particularly older or niche functions like certain layout methods removed or altered in 3. In such cases, developers may need custom Python overrides or alternative implementations using available introspected equivalents, consulting the GIR files for supported symbols. Mixing PyGTK and PyGObject bindings can cause crashes, so a complete port is essential.

Notable Applications

Applications Using PyGTK

PyGTK has been instrumental in developing several notable applications, particularly in the open-source ecosystem, where its integration with + 2.x enabled of graphical user interfaces for desktops. Prior to , when PyGTK reached the end of major development, it powered a range of software leveraging its stability and ease of use with tools like Glade for UI design. These applications often targeted environments, benefiting from PyGTK's object-oriented bindings to create cross-platform GUIs without deep programming knowledge. One prominent example is , a lightweight client that utilized for its in versions up to 1.3.x. Deluge's core was written in , allowing for a modular daemon-client with features like support and full , making it a popular choice for users seeking an efficient manager. The application combined PyGTK with for backend functionality, emphasizing its role in handling complex file-sharing interfaces on pre-2011 desktops. Deluge later migrated to PyGObject and 3 for continued development. Gajim, an XMPP instant messaging client, was built entirely in using to provide a full-featured interface for chat, file sharing, and group communications. Released in its early around , Gajim relied on PyGTK for its frontend, supporting roster , , and multi-account handling while integrating seamlessly with . Its developers aimed for ease of use in environments, and the client remains a legacy example of PyGTK's capability for network-aware applications before transitioning to newer bindings. The Anaconda installer, used by Fedora for system installation, employed PyGTK for its graphical frontend in versions prior to Fedora 15 (2011). This allowed for dynamic configuration screens handling partitioning, package selection, and hardware detection in a user-friendly manner, streamlining the installation process on Linux systems. Anaconda's use of PyGTK facilitated scripting in Python for the installer's logic, reducing development complexity for its extensive feature set. SoundConverter, a multithreaded audio file converter for , was developed in with PyGTK to support batch conversion across formats like , , and using . Early releases, such as version 1.x around 2007-2010, leveraged PyGTK's widgets for queue management and progress tracking, making it an accessible tool for audio enthusiasts on desktops. The application often paired PyGTK with Glade-generated XML files for layout, highlighting common pre-2011 workflows. Many early GNOME applications, including plugins and utilities from the mid-2000s, drew on for their cross-platform GUIs, capitalizing on its maturity for stable desktop experiences before the shift to GTK+ 3. This era saw PyGTK combined frequently with Glade, enabling developers to separate UI design from logic and accelerate creation of tools for environments up to around 2011.

Applications Using PyGObject

PyGObject serves as the foundation for numerous applications in the ecosystem, allowing developers to build feature-rich software using Python's combined with GTK's robust toolkit. This binding supports introspection for seamless integration with modern libraries, facilitating the creation of responsive interfaces that align with 's design principles. Prominent examples include Music, a music player that organizes and plays local audio collections with intuitive browsing and playback controls, leveraging PyGObject for its GTK-based interface. Similarly, Tweaks provides users with advanced customization options for the , such as theme adjustments and extension management, all implemented through PyGObject bindings to access shell and settings APIs. Lollypop offers an alternative music player focused on genre and artist exploration, with features like cover art display and playlist management, built entirely in using for cross-platform compatibility. , a non-linear , utilizes to interface with for editing timelines, effects, and rendering, supporting professional workflows in the environment. Nautilus, GNOME's default , incorporates Python extensions via the nautilus-python module, which relies on PyGObject to extend functionality such as custom context menus and file operations without modifying the core C codebase. In the broader context, PyGObject enables rapid prototyping for GNOME 40 and later releases, providing introspection-based access to GTK 4 capabilities including libadwaita theming, while ensuring compatibility with compositing and high-DPI scaling for contemporary hardware. Some applications, like , originated with PyGTK bindings and have since migrated to PyGObject for enhanced maintainability.

References

  1. [1]
  2. [2]
    PyGtk - Python Wiki
    May 26, 2014 · PyGtk is a set of Python bindings to the popular GTK Toolkit. It provides an object-oriented interface that is slightly higher level than the C one.
  3. [3]
    PyGTK · PyPI
    License: GNU LGPL; Author: James Henstridge. Classifiers. Development Status. 6 - Mature · Report project as malware. Project description; Project details ...
  4. [4]
    Projects/PyGTK/QuickStart – GNOME Wiki Archive
    ### Summary: PyGTK and Event-Driven Programming for GUIs
  5. [5]
    pygtk Archived - GitLab
    This API has been removed from Pango 1.44.6, because it was completely unused by anything. However, PyGTK tries to bind everything, even unused API.
  6. [6]
    [ANNOUNCE] PyGTK 2.24.0 - GNOME
    ... PyGTK 2.24.0; Date: Sat, 2 Apr 2011 00:19:55 +1300. Hi All, A new stable development release of the Python bindings for GTK-2 has been released. The new ...Missing: end active
  7. [7]
    [PDF] Showing Up for Python in GNOME
    Jul 20, 2024 · It is the successor to PyGTK that James Henstridge started in. 1998 that uses gobject-introspection directly to allow you to build GNOME apps ...
  8. [8]
    GTK+ History - Red Hat People
    GTK+ was started as toolkit for the GIMP around 96 and reached its first stable release in April 98. GTK+ 1.0 contained the basic widgets that were needed ...Missing: origin | Show results with:origin
  9. [9]
    Python and GTK+ versions
    Below are tables of when and where various versions of Python and GTK+ became available. Each version links to the corresponding release notes, and I'll ...
  10. [10]
    gnome-announce-list 1999-March Archive by Date
    ANNOUNCE: new versions of pygtk and gnome-python James Henstridge. 14 ... gtop 1.0.2 ("The Failsafe Release") has been released Martin Baulig. 22 March ...
  11. [11]
    PyGTK 2.0 Reference Manual - manpagez
    Aug 7, 2010 · This reference describes the classes of the Python PyGTK module. Table of Contents. Introduction · Major Changes since Version 1.9 · Reference ...Missing: announcement | Show results with:announcement
  12. [12]
    PyGTK: Python GUI Programming - YoLinux.com
    Python GUI programming using pyGTK, the GTK GUI libraries for Python. The YoLinux portal covers topics from desktop to servers and from developers to users.
  13. [13]
    [PDF] PyGTK 2.0 Tutorial - RVBurke
    Oct 7, 2012 · ... PyGTK and GTK and GTK+ refer to the 2.X version of GTK+. The primary ... This program makes it easy to try out various GTK widgets and PyGTK ...
  14. [14]
    AUR (en) - pygtk - Arch Linux
    Mar 29, 2020 · From official GNOME docs: "Attention: PyGTK 2.24 will be the last release in the PyGTK series and will support the full GTK-2-24 API.
  15. [15]
    pygtk-all-in-one.README - GNOME
    The pygtk-installer project provides a set of tools to build the PyGTK All-in-one installer and its various dependencies. There are currently versions of ...
  16. [16]
    How to Install PyGTK in Python on Linux? - GeeksforGeeks
    Jul 23, 2025 · To install PyGTK on Linux, install Python3, python3-pip, and PyGObject, GTK, and other dependencies using the commands: `sudo apt install ...
  17. [17]
    PyGtk in Fedora virtualenv (for matplotlib) - mdda
    Oct 19, 2014 · Install system-wide RPMs. sudo yum install pygtk2 pygtk2-devel. Redo the matplotlib setup. Early on in the installation 'configuration debug ...<|control11|><|separator|>
  18. [18]
    vext.pygtk - PyPI
    Use system pygtk from a virtualenv. Project description: Allow use of system PyGtk (Gtk2) from a virtualenv. Should work on all platforms.
  19. [19]
    pygtk >= 2.10.0 - not found · Issue #511 · gnuradio/pybombs - GitHub
    Aug 6, 2018 · In that case, try sudo apt install libgtk2.0-dev libgtk2.0-0 to resolve your PyGTK issue. Here's a related StackOverflow post. I never did ...
  20. [20]
    Porting from Static Bindings - PyGObject - GNOME
    pygtk supported GTK 2.0 and Python 2 only. PyGObject supports GTK >=3.0 and Python 2/3. If you port away from pygtk you also have to move to GTK 3.0 at the same ...Missing: key | Show results with:key
  21. [21]
    Gtk – 3.0 - GTK Documentation
    Gtk API Version: 3.0 Library Version: 3.24 Sections Classes Interfaces Structs Aliases Enumerations Bitfields Error Domains Callbacks Functions Function Macros ...Getting Started with GTK · CSS Overview · CSS Properties · Tree View Tutorial
  22. [22]
    Porting from Static Bindings — PyGObject
    ### Summary of Key Differences Between PyGTK and PyGObject
  23. [23]
    PyGObject - PyPI
    Installation. The latest version from PyGObject can be installed from PyPI: pip install PyGObject. PyGObject is only distributed as source distribution, so ...
  24. [24]
    Getting Started - PyGObject - GNOME
    Ubuntu / Debian# · Open a terminal · Execute sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-4.0 · Change the directory to where your hello.py script can ...<|control11|><|separator|>
  25. [25]
  26. [26]
    [PDF] Writing GTK 2.0 and GNOME 2.0 Applications with Python
    Why use PyGTK for Gnome apps? Write shorter programs. Object oriented API. No need to worry about casting or reference counting. Can be used for prototyping ...
  27. [27]
    Debian -- Details of package deluge-gtk in bullseye
    bittorrent client written in Python/PyGTK (GTK+ ui). Deluge is a full-featured, multi-platform, multi-interface BitTorrent client using libtorrent-rasterbar ...
  28. [28]
    Deluge: Welcome
    Deluge is a lightweight, Free Software, cross-platform BitTorrent client. Full Encryption; Web User Interface; Plugin System; Much more.Deluge BitTorrent Client · Deluge Download · Deluge · Thin ClientMissing: PyGTK | Show results with:PyGTK
  29. [29]
    1328 (Migrate Deluge to Python 3)
    pygtk - Needs port to PyGObject. "python-notify" should probably be also listed as "Needs port to PyGObject" - "from gi.repository import Notify" can be used ...
  30. [30]
    gajim - Fedora Packages
    Gajim is a Jabber client written in PyGTK. The goal of Gajim's developers is to provide a full featured and easy to use xmpp client for the GTK+ users.
  31. [31]
    gajim — a Jabber/XMPP client - Ubuntu Manpage
    gajim is a Jabber/XMPP client written in Python and GTK+. gajim works nicely with GNOME, yet it does not require it to run.Missing: PyGTK | Show results with:PyGTK<|separator|>
  32. [32]
    Gajim - full featured and easy to use XMPP client - LinuxLinks
    Nov 4, 2023 · Gajim is an open source Jabber client written in Python, with a GTK+ frontend. This is free and open source software.<|separator|>
  33. [33]
    Anaconda/BuildDocProject - Fedora Project Wiki
    The graphical front-end of Anaconda is written with pyGtk library. Using the Python scripting language for the majority of the installer code allows for easy ...
  34. [34]
    Questions : SoundConverter - Launchpad Answers
    SoundConverter uses Python and GTK+ GUI toolkit, and runs on X Window System. Distributed under the GNU GPL v3: You can freely use, modify and redistribute ...
  35. [35]
    A Beginner's Guide to Using pyGTK and Glade - Linux Journal
    Aug 31, 2003 · The beauty of pyGTK and Glade is they have opened up cross-platform, professional-quality GUI development to those of us who'd rather be ...
  36. [36]
    Overview — PyGObject
    - **What is PyGObject?**: A Python package providing bindings for GObject-based libraries like GTK, GStreamer, WebKitGTK, GLib, and GIO.
  37. [37]
    Programming Languages - GNOME Developer Documentation
    Works with Python 3 and PyPy3. Applications which use PyGObject include Music, Lollypop and Pitivi. Applications which use gtk-rs include Authenticator, ...
  38. [38]
    0.92 Release “Baby Steps” - Pitivi
    The Pitivi team is proud to announce the second alpha release of the new version of Pitivi based on GES, the GStreamer Editing Services library. This is a ...