[Interest] QML vs Widgets, 20202 Q1 edition (was "Is there a good alternative to the QML [...]")

Rui Oliveira ruilvo at hotmail.com
Mon Feb 21 21:33:52 CET 2022


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 at qt-project.org
> https://lists.qt-project.org/listinfo/interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20220221/c9d9675a/attachment.htm>


More information about the Interest mailing list