@jhx with #csharp you should check Eto https://github.com/picoe/eto
Works very well in my experience as a platform-agnostic wrapper for WPF, Gtk3 and Cocoa. Also does mobile, but I have not used that.
@jhx This is from about 15 years ago in Java, but GTK via GTKmm.
It did a good job rendering a GUI provided you use the elements they already provide in GTK, but I used it mainly because we all knew C++ already. We used it again later once one member of said team burned us and we realized he didn't know C++ so he was relegated to the other team that was using Java
@jhx My primary experience had been with Qt, which has become monstrous and dumb over time. Since it is Qt widgets I care about, and the Qt company constantly seems to very much want to deprecate them, WxWidgets may well be a better long-term choice. That does not do anything for mobile, but I cannot see well enough to use my phone for ui anyway anymore. I do have some Qt projects still in active development, though.
@jhx So far I went with #Qt. Even though I kind of hate C++ (and use good old C instead whenever possible), Qt was a good reason to use C++ for the "GUI layer" (and you can easily dodge the IMHO worst missfeature, exceptions).
My experience was, it offers an object model that actually makes sense (to me), it covers a lot more besides only GUI (like e.g. sockets), it's flexible (e.g. leaving you the choice between declarative GUI descriptions or programmatic constructions and both work fine and feel sane), static linking and cross-building (#FreeBSD build machine building both #Linux and #Windows binaries) were doable without too much trouble ...
But, this experience is several years old by now. Gotta try to move one of my projects from #Qt5 to #Qt6 soon 😉
@jhx It's a bit "special" because it extends the C++ language with its "signals and slots" concept. But IMHO, this is a very nice extension, offering a flexible model for event-driven architectures. You'll need an extra "precompiler" called "moc" (meta-object-compiler) for any class making use of it.
Add comment