There seems to be a struggle between titans with QT and GTK+ that folks lean towards as the leaders in the UI market, with QT having a slight edge (maybe not in deployed applications, but with publicity). I'm just thinking about the last time I tried to install QT - it was humongous, had lots and lots of moving parts, had some weird 'why doesn't that work' stuff that was oh so convoluted to figure out, and when I did figure it out and get it running, left me with the 'will I ever be able to do that again and get it reinstalled properly' kinda feeling.I agree. I use Qt at work and we have several applications based on it.
Qt is just perfect for nice looking, cross-platform apps.
I never used Qt before i started to work at my current employer. I was always a GTK user.Before I go down the rabbit hole again, I'd be interested to hear how you and others experiences have been on the install, code, and deploy simplicity front?
I hate the "everything is a Web page" look. I think it's being driven by things like React Native. Companies wanna do graphic design for a single UI toolkit that they can use across all platforms, and I admit it makes business sense, but frankly looks like crap.Talking about retro desktop environments, I use CDE on my laptop. The last time I went to OpenHack here, a couple of GenZ people there remarked how they loved the look of CDE on my laptop. The 3-D effect of Motif widgets have a certain quality that you don't see on the flat looking toolkits that are the basis of today's desktop environments. OpenLook also had a 3-D look to it. It was style back then. It's no longer stylish to have that 3-D effect, probably because it takes a lot more effort to bake those effects into the toolkit.
x11-wm/ittywm is in libxcb and based on tinywm. It has slightly more lines of code, at 171. https://github.com/marshallmason/ittywm/blob/master/ittywm.cHere is a windowmanager written with XCB in only 159 lines of code.
Interesting. That's written by the author of moc, 'cause someone forked Qt to remove the moc dependency. I think it's an equivalent approach written to use only standard preprocessor macros. Frankly things like this "(t)he moc generated code is human readable for most part(sic)" give me the heebie-jeebies. Even human-written, and allegedly human-readable C++ code ain't exactly a joy to debug.
It seems that the programs based on different ones tend to conflict at times, where the libXCB based programs have problems functioning at times. Perhaps this has to do around upgrades.For anyone writing new code today for X11, I strongly encourage using XCB in place of XLIB. The main flaw of XLIB is every call blocks whereas in XCB, every call is asynchronous. You can push pixels to the framebuffer, do other work, and check later to see it completed. You can also create a shared memory segment to communicate a pixmap directly to the X server.
The only hassle is getting nice looking fonts rendered. That takes a little extra work.
Wayland is meant to be used with a graphical toolkit. libxcb is partial, and not a full graphical toolkit. The existing way is a shim for libxcb to work on Wayland, which for adaptability would be suitable. QT uses libxcb at its core. libcairo also can be optionally set to use libxcb rather than libx11; otherwise libcairo on FreeBSD is dependent on dependency hell. libxcb would be better than libx11, if used without a more graphical toolkit, for direct use to Wayland however.XCB - in my opinion - solves 90+% of what Wayland is trying to accomplish.
Well when Qt started, it was back then a proprietary library by a Norway company called Trolltech. So it was also no opensource, they just allowed hobbyist use in the beginnings. Despite that, enough projects took it as their GUI.There seems to be a struggle between titans with QT and GTK+ that folks lean towards as the leaders in the UI market, with QT having a slight edge (maybe not in deployed applications, but with publicity).
gtk has more bindings also due to introspection,
Well said. I teach C# and the students are constantly amazed that I don't just fawn over the object oriented capabilities. I try to explain to them that tasks, in the real world, rarely lend themselves to object oriented solutions - with the the notable exceptions of reusable libraries and guis .On the other hand it can be said that C is really not the most suitable language for GUI programming. In fact GUIs seem to be one of those rare occasions where object-oriented programming makes sense.
C++ and beautiful, in the same sentence, whew! Well you did say Qt's C++ API, so maybe that's beautiful, I'll have to take a look. As for C++, I can't stand C++ in its current incarnation. Maybe once upon a time, but these days, it's uh overbuilt, overcomplicated, overthunk... maybe just over... as in over the top. I did pro C++ for a decade, now that I have my own spare time, I prefer the clarity of straight c over C++, but to each their own.To be honest, i gave up on using GTK due to its ugly C API. I am a C++ guy and for me, Qt's C++ API is just beautiful.
And no, i don't like using wrappers. They seldomly are usable but are rather limited.