=========
Tutorials
=========

These tutorials give an introduction to writing GTK/GNOME applications in
Python.

Prior to working through these tutorials, it is recommended that you have a
reasonable grasp of the Python programming language. It is necessary for you to
know how to create and run Python files, understand basic interpreter errors,
and work with strings, integers, floats and boolean values. For the more
advanced parts of these examples, good knowledge of lists and tuples will be
needed.

Although here we try to describe the most important classes and methods from
GObject based libraries like GTK, it is not supposed to serve as an API
reference. Please refer to the :ref:`api-references` list where you will
find a detailed description of the API for each library. Also there's a
`Python-specific reference <https://api.pygobject.gnome.org/>`_
available.

.. note::
    Our tutorial list is still not as extensive as we would like, so if you
    have experience with PyGObject, contributing docs is a great way to help.
    
    Some areas that could use your help: libadwaita components, GLib and Gio
    features.


.. _api-references:

API References
--------------

* `GObject <https://docs.gtk.org/gobject/>`_
* `Gtk 4 <https://docs.gtk.org/gtk4/>`_
* `Gdk 4 <https://docs.gtk.org/gdk4/>`_
* `Gio <https://docs.gtk.org/gio/>`_
* `GLib <https://docs.gtk.org/glib/>`_
* `Adwaita <https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/>`_
* `Python-specific references <https://api.pygobject.gnome.org/>`_

Other Resources
---------------

* The :devdocs:`GNOME Developer Documentation <tutorials>`
  has some tutorials that include Python examples.


.. toctree::
   :maxdepth: 1
   :hidden:
   :caption: Contents

   gobject
   gtk4
   libadwaita
   gtk3

.. toctree::
   :maxdepth: 1
   :hidden:
   :caption: External Resources

.. toctree::
   :maxdepth: 1
   :hidden:
   :caption: About
