Useful documentation for GTK

4 Likes

Maybe Relm incl https://crates.io/crates/relm 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

https://developer.gnome.org/guides

https://developer.gnome.org/gtk4/stable/

https://developer.gnome.org/gnome-devel-demos/stable/

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:

https://github.com/StefanSalewski/gintro

[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

2 Likes

https://github.com/yucefsourani/pygi-examples
https://github.com/gkralik/python-gst-tutorial
https://github.com/sam-m888/python-gtk3-tutorial/tree/master/_examples
https://github.com/strycore/pygobject-demos

2 Likes

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.
2 Likes

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 https://gjs-docs.gnome.org/

Thanks to Meg, Philip and Andrea :smile:

2 Likes

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.

2 Likes

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


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

3 Likes

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

The official rust tutorial is https://gtk-rs.org/gtk4-rs/stable/latest/book, from the gtk-rs website

I generally feel that the docs for various language bindings like pygobject and gtk-rs are much better then the docs for C.
I really want to complain that the current status of GTK is just “black art” with many parts lacking documentation. The many parts of GTK like gtkbuilder, gresources, gobject are completely confusing for newcomers, yet these are essential for GTK applications to work. The gtkbuilder’s xml format is even undocumented (not even those xml tags and attributes already supported by GTK, let alone create out-of-tree subparsers) , and glade does not even recognize the official demo’s xml definition.

Update: glade won’t support GTK4. It was intended in glade-users-list, but was dropped several months later here. The glade maintainer has a GUADEC presentation about the new Cambalache UI maker and also blogged Merengue: Cambalache’s workspace. Also see Plan about GTK4 support of Glade? - #2 by sophieherold

The API references for language bindings literally use the same documentation as the C API.

Have you also looked at the GTK 4 API reference?

I’m in the process of moving more documentation to the same model, and under the docs.gtk.org domain, to ensure that it’s easier to go through the various bits of our platform.

You’ve mentioned three things, and two of them are not part of GTK.

That is true. I’d be happy to review your contributions on how to improve the documentation for newcomers. Additionally, with the new developer documentation website, adding guides and tutorials should be easier.

Glade is not going to work for GTK4; it’s a known issue, and there are replacements currently being worked on.

FYI, the book “Scalable C” from the czmq author describes syntax very similar (in fact I believe almost identical to, except that zmq does not use GObject; zmq has a formal specification here) to those GLib and GTK.
https://hintjens.gitbooks.io/scalable-c/content/index.html
Chapter 2 is about “Scalable C” syntax.
(Other topics are git, public project’s license, build systems, etc, and are not directly linked to programming GTK in C)

I don’t think this is at all relevant to the GTK or GNOME documentation, except that they both use C.

Yes, they aren’t for GTK and GNOME.

Sorry for misusing the word “documentation” here but I mean “tutorials”.
The new domain docs.gtk.org is indeed better than the old gnome developers website.

When we reopen this old thread we should also mention

GitHub - ToshioCP/Gtk4-tutorial: A gtk4 tutorial for beginners

And the Nim GTK4 book has made also some progress in the last year:

GTK4 for Graphical User Interfaces