I decided to write this series of tutorials after reading the excellent book Foundations of GTK+ Development by Andrew Krause. The book does a wonderful job of describing GTK's most-used widgets and how to use them, and even though I had already had a certain amount of experience with GTK, reading it taught me several tricks I didn't know. There is also a section on writing your own widgets, but I found it a little too short to really get into the nitty-gritty. So, I thought I'd share some of the stuff that I had to find out through trial and error.
My intended audience is people who are already capable of programming a small application in GTK, and want to know how to program more advanced, real-world applications. If you are a GTK beginner, I heartily recommend recommend GNOME's Foundations, or do some programming and read the GTK docs as you go, if that's your preferred way of learning things.. Or you could read
If you have a reasonable amount of experience with GTK, GLib, and GObject, you will know about the naming scheme for GObject classes. The classes in this guide will use the namespace prefix P, which is the first letter of my name, and easy to type and pronounce. After all, it's my tutorial.
This tutorial isn't finished yet, I'm working on it. You can follow along while it's a work in progress, though. Both the code and the website are hosted on, so if you see a mistake, you can report it there, or just change it yourself and send me a pull request.