.. include:: icons.rst
.. title:: Overview
.. toctree::
:hidden:
:titlesonly:
:maxdepth: 1
getting_started
tutorials/index
changelog
bugs_repo
guide/index
devguide/index
packagingguide
maintguide
further
contact
.. image:: images/pygobject.svg
:align: center
:width: 400px
:height: 98px
|
.. include:: ../README.rst
:start-after: |
:end-before: ----
If you want to write a Python application for `GNOME
`__ or a Python GUI application using GTK, then
PyGObject is the way to go. To get started, check out the "`GNOME Developer Documentation
`__". For more
information on specific libraries, check out the
`GNOME Python API documentation `__.
.. code:: python
import sys
import gi
gi.require_version("Gtk", "4.0")
from gi.repository import GLib, Gtk
class MyApplication(Gtk.Application):
def __init__(self):
super().__init__(application_id="com.example.MyGtkApplication")
GLib.set_application_name("My Gtk Application")
def do_activate(self):
window = Gtk.ApplicationWindow(application=self, title="Hello World")
window.present()
app = MyApplication()
exit_status = app.run(sys.argv)
sys.exit(exit_status)
How does it work?
-----------------
.. figure:: images/overview.svg
:width: 600px
:height: 222px
:align: center
:class: only-light
.. figure:: images/overview-dark.svg
:width: 600px
:height: 222px
:align: center
:class: only-dark
PyGObject uses `GLib `__, `GObject
`__, `GIRepository
`__, `libffi
`__ and other libraries to access the C
library (libgtk-4.so) in combination with the additional metadata from the
accompanying typelib file (Gtk-4.0.typelib) and dynamically provides a Python
interface based on that information.
Who Is Using PyGObject?
-----------------------
* `Anaconda `__ - an installation program used by Fedora, RHEL and others
* `Apostrophe `__ - a Markdown editor
* `Blanket `__ - listen to different sounds
* `BleachBit `__ - delete unnecessary files from the system
* `Bottles `__ - run Windows software on Linux
* `Cambalache `__ - a user interface maker for GTK
* `Cozy `__ - the audiobook app for Linux
* `D-Feet `__ - an easy to use D-Bus debugger
* `Deluge `__ - a BitTorrent client
* `Dialect `__ - a translation app
* `Drawing `__ - a drawing application
* `Feeds `__ - an RSS/Atom feed reader
* `Gajim `__ - a fully-featured XMPP client
* `Gameeky `__ - a learning tool for making games and learning experiences
* `Gaphor `__ - a simple modeling tool
* `Getting Things GNOME! `__ - a personal task organizer
* `Girens `__ - a Plex client for playing movies, TV shows and music from your Plex library
* `GNOME Music `__ - a music player for GNOME
* `GNOME Tweaks `__ - a tool to customize advanced GNOME options
* `Gramps `__ - a genealogy program
* `Komikku `__ - a manga reader
* `Lollypop `__ - a modern music player
* `Lutris `__ - a video game manager
* `Meld `__ - a visual diff and merge tool
* `Metadata Cleaner `__ - an application to view and clean metadata in files
* `MyPaint `__ - a nimble, distraction-free, and easy tool for digital painters
* `Nicotine+ `__ - a graphical client for the Soulseek peer-to-peer network
* `Orca `__ - a flexible and extensible screen reader
* `Paperwork `__ - a personal document manager
* `Pithos `__ - a Pandora Radio client
* `Pitivi `__ - a free and open source video editor
* `Plots `__ - a graph plotting app
* `Quod Libet `__ - a music library manager / player
* `Secrets `__ - a password manager
* `Setzer `__ - a LaTeX editor
* `Terminator `__ - The Robot Future of Terminals
* `Wike `__ - a Wikipedia reader
The following applications or libraries use PyGObject for optional features,
such as plugins or as optional backends:
* `beets `__ - a music library manager and MusicBrainz tagger
* `gedit `_- a GNOME text editor
* `matplotlib `__ - a python 2D plotting library
* `Totem `__ - a video player for GNOME