Skip to main content


It's aliiiiveeee! (almost) #WiP #confy #gtk4 #libadwaita

Screenshots on last post where blueprint ui files made in Workbench, this is from the wip branch. 🚧👍
New "Add event from URL" dialog and "Edit event" dialog, with window in "edit mode"

Tobias Bernard reshared this.

Why is it a pain?
I'm interested as eons ago I started an automatic binding generetor for #LibertyEiffel that uses the same wrapper/binding infrastructure used by Python.
And I should soon restart working on it 😅
Why is it a pain?

I was quite dramatic here :)

it's a nice binding, very pythonic, without being too different from GObject api. Given the obvious different things (like define a gobject subclass property. Or how enums are named, etc), you can read gtk docs https://docs.gtk.org/gtk4/ and write almost correct code at first try.

But then you want to do something more exotic, like define your enum. you can't. And many other little thing.

Or try to assign a complex model to an AdwComboRow, then you may want to assign a Gtk.ClosureExpression, which for what I can tell it can't be created.

Unfortunately the project looks like it's in need of some love.

And TBH sometimes Gtk4 it's in your way on itself. Why GtkSearchBar is final? it's a container. It need a child element to work. I would like to subclass it, attach an ui template, setup the logic into the subclass and then reuse this subclass in another ui template. You can't, because it's final. You have to wrap it in another non-final widget, let's say a GtkBox.
That's my experience. I'm not an expert in GObject/Gtk nor in PyGObject. I'm just trying to follow the documentation. And my exasperation also stems from the fact that sometimes I can't rtfm...
coming late into the party, but does the other bindings have the same problem?
@Fabio is somebody getting ready for fosdem?
@Elena ``of Valhalla'' I'm mostly trying to not delete everything at this point

This website uses cookies to recognize revisiting and logged in users. You accept the usage of these cookies by continue browsing this website.