QML/Quick on the desktop is clearly a hot topic.

I've asked about this little under a year ago [1]. Interesting discussion, worth a read.

In the meanwhile, I've been asking questions around, like what do /r/cpp redditors like to use [2]. Results are interesting and the comments are as well.

I've been looking at other ecosystems with some envy, namely the growing cross-platform C# frameworks [3, 4, 5]. Albeit they tend to the "modern" styles, like Fluent and Material, it's worth noting how actually surprisingly integrated with the underlying platform some of these are, via the use of "templated controls" that ultimately are "system" ones.

Then, there's a *lot* of people that tell me "just use a web-stack", like Electron, of neutralino.js [6] and code your UIs with HTML+JS.

Personally, my interest in C++ has been as a hobbyist so far. My pet projects involve real-time application, requiring also relatively performant visualizations. I'm interested in the desktop, and particularly, I'm interested in /high density/ desktop UIs. Not Fluent/Material stuff, designed for fat fingers, I want information-dense UIs and I want to interact with them with my keyboard and mouse.

With this context, what have I learned in the last year? Nothing. I'm more confused than ever as to what to use for new projects, and there are so many pros and cons.

Widgets are solid for this type of application. And while they are considered a "solved problem", sometimes I feel like they are more "labeled" as a solved problem. QTBUG-6864 is 12 years old, has 47 votes, and I know about it because it affected me personally [7], just to name an example. I also wish we had QRhiWidget, even without the possibility for the QPainter API. Truth is that it seems the reward/effort ratio for this stuff is just too low considering the size of the desktop market, especially the size of the desktop market in C++. I know QWidgets are maintained. But honestly, sometimes it does feel like picking up deadware to start new projects. The other day I needed a quick UI for a python thing, and used Qt Designer for the first time (I usually just write the widgets in C++) and it was a serious adventure trying to copy/paste elements). On the pros, like some have said, there is quite the nice community around QWidgets in the open-source world. Some even used by Qt itself, like githubuser0xFFFF/Qt-Advanced-Docking-System [8].

Regarding QML/Qt Quick... Well, it doesn't feel like a desktop framework, honestly. It's improving slowly, like the introduction of "native"-ish desktop look-and-feel in Qt 6. But there are some things that are really big turn-offs. First, even said "native" look-and-feel, or the fusion look don't feel that great. Honestly, and funnily enough, personally, I feel widgets "snappier" than QML. For real, try the "Text Editor" examples both in Quick [9] and QWidgets versions [10] (both available in Qt Creator) and tell me what you like more (once you ignore the 2000s cartoonish icons on the latter). Plus some things really annoy me, like QTBUG-93084 [11].

So, at the current time, I personally feel that I have one option that's not future-proof, and another one that's not present-ready... I honestly can't decide.

This comments of mine are just a personal opinion, and there is a lot of nuance and details and arguments that I can't remember all at once while writing an email.

Good coding,
Rui


[1] https://lists.qt-project.org/pipermail/interest/2021-April/036763.html
[2] https://www.reddit.com/r/cpp/comments/s7z3se/what_are_you_using_for_guis/
[3] https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui
[4] https://avaloniaui.net/
[5] https://platform.uno/
[6] https://neutralino.js.org/
[7] https://bugreports.qt.io/browse/QTBUG-6864
[8] https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System
[9] https://doc.qt.io/qt-6/qtquickcontrols-texteditor-example.html
[10] https://doc.qt.io/qt-6/qtwidgets-mainwindows-application-example.html
[11] https://bugreports.qt.io/browse/QTBUG-93084


Às 15:42 de 21/02/2022, Mark Gaiser escreveu:
Hi,

I'm facing so many bugs in QML Controls in Qt6 (they used to be Controls V2 in the Qt 5.x days) that I don't want to use them at all anymore. They are bugged beyond repair and downright unusable for native desktop integration purposes.

Is there another good open source component set out there that integrates with the desktop. Specifically with Windows but preferably also with Linux (kde and gnome) and Mac.

Using QWidgets should not be an alternative as it slows down development a lot. But given the crap that QML Controls is makes me consider switching to QWidgets instead.


Best regards,
Mark

_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest
_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to