Useful documentation for GTK

A list of useful links for writing applications with GTK.

  • The getting started tutorial in the API reference.
  • The GtkTreeView tutorial. An overview on GtkTreeView, GtkTreeModel, and related classes. It was written for GTK 2.x, but the API and design haven’t changed since then.
  • The “How do I” pages on the GNOME wiki. A list of short guides to help you implement specific functionality for integrating with GNOME.
  • The GTK Inspector; the inspector allows you to query the state of any GTK application, and change things like widget properties and CSS styling at run time.
  • The GTK icon browser utility.

Will try to keep this up to date. Suggestions and links welcome!


Introduction to GTK application development with Vala by Alecaddd:

1 Like

Maybe Relm incl could be added.

1 Like

OK, I just subscribed as you suggested on the gtk mailing list. But I am some sort of sceptical still, can not really believe that Mr E. Snowden joins this discourse forum.

For the documentation, when someone ask me, I generally point people to

Often people are not able to find these.

Recently I discovered that a PyGTK book exists – never heard about that one before. Seems to be a clone of the C book from 2007 of Mr. A. Krause.

And finally, we have some Nim bindings with a mini tutorial too:

[EDIT] I just remembered the DEVHELP tool, which is designed to discover the GTK C API. I think it is very helpful to find structures and functions fast, also for languages other than C. I used it a lot when I wrote the experimental NEd Nim editor some years ago. I just launched it again, seems still to work, but fired some errors messages unfortunately: “(devhelp:1988): GLib-CRITICAL **: 07:41:58.732: g_source_set_ready_time: assertion ‘source->priv != NULL’ failed”

1 Like

Step by step GtkGLArea examples: Brick out, Asteroids, and Space Invaders



A blog covering usage of GTK with the D language. 35 entries and counting…

Topics to date:

  • installation of a D and GtkD development environment in both Linux and Windows,
  • various Window widgets and operations (sizing, placement, etc),
  • Buttons (image, labelled, radio, checked, etc.),
  • Menus, sub menus, as well as using images, checkboxes, and radio buttons as menu items,
  • accelerator keys and mnemonics,
  • Containers such as Boxes and Grids,
  • signals, callbacks, and events,
  • harnessing mouse events including the scrollwheel,
  • OOP development for D and GtkD.

Future topics include:

  • Dialog windows of various types,
  • spin, volume, and scale buttons,
  • combobox, comboboxtext, liststore and treeview widgets,
  • a bunch more that are still in the planning and research stage.

6 posts were split to a new topic: Blog series on using GTK with the D language

13 posts were split to a new topic: Updated blog series on using GTK with the D language

PSA: GJS documentation is back up and can be found at

Thanks to Meg, Philip and Andrea :smile:


Documentation is indeed a pressing need for this project and so we’ll need to definitely think about how to write a good set of documentation for GNOME that is comprehensive. The fact that documentation is spread out all over the place and there is no canonical source making it hard to find resources to write GNOME code is something that should be fixed.


I created an YouTube channel about Working with GTK3, CSS and C Language:

This can be useful for Beginners.
25 entries and counting…


2 posts were split to a new topic: GTK3, C, and CSS YouTube series

The official rust tutorial is, from the gtk-rs website