top | item 25344826

Qt 6.0

447 points| milliams | 5 years ago |qt.io | reply

360 comments

order
[+] lazypenguin|5 years ago|reply
Qt is great and I get disappointed that the discussions surrounding it often devolve into nitpicking the pricing and licensing terms. Seems people are less willing to pay for high quality tools these days.

On the technical side, the qt quick desktop styling is intriguing. My main use case for Qt is for desktop applications and while qt quick is often recommended I usually go for qwidgets instead. 9/10 times I need a traditional interface with menu bars, forms and tables. While qt quick lets me make nice looking UI, I often need something that just works similarly to how a traditional desktop application works, looks be damned. Im curious if they'll manage to close that gap in qt6 but I'm skeptical which means I'll probably stay on widgets for the foreseeable future.

[+] PragmaticPulp|5 years ago|reply
> Seems people are less willing to pay for high quality tools these days.

On the contrary, I think companies are more willing than ever to pay for quality 3rd-party tools and software. The reality is that the Qt licensing costs are a bargain relative to time saved for enterprise customers. It's not even a question at this point.

The complaints usually come from people thinking of lean startups or selling hobby projects, where the licensing overhead is another non-trivial number on your cost of goods sold. Many of the complaints here would only realistically be a problem for someone selling a very small number (<100) of their product per year with very low margin, which is far more rare than people think.

Regardless, Qt still has a separate small business license with a different pricing structure: https://www.qt.io/qt-for-small-business

[+] toyg|5 years ago|reply
I similarly stick to QtWidgets, but have to say they don’t seem to scale well in Windows. That’s likely a function of the underlining Windows components, but it’s undeniable, sadly. QtQuick / QML deals better with that scenario, but one ends up having to reinvent a bunch of things (ironically, considering the “quick”) that QtWidgets have had for years already.
[+] brnt|5 years ago|reply
Qt posts to HN never include a single technical comment. It is unfortunate, but I suppose that's mostly due to the particular subset of programmers that visits HN.
[+] tabtab|5 years ago|reply
Re: "I often need something that just works similarly to how a traditional desktop application works, looks be damned."

It's annoying how many dump efficient UI design to chase the latest fads. We Vulcans cry.

[+] egwor|5 years ago|reply
I just don't understand the free/commercial differentiation. I was trying to get some projects working from uni, and I wasn't sure what I was allowed to do nowadays. I thought it all had to be commercially licensed so gave up.
[+] hermitcrab|5 years ago|reply
I've never switched from Qt widgets to QML. It is more important to me that the controls look platform standard. Also I am a programmer, not a designer.
[+] nikanj|5 years ago|reply
We migrated away from Qt in large part because of the licensing uncertainty. The discussion always devolves into nitpicking about the license and pricing, because it's such a major handicap for Qt.

It feels like every six months they completely revamp the licensing program, and the LGPL version always seems to suffer from a corporate sword of Damocles

[+] FpUser|5 years ago|reply
>"Qt is great"

Absolutely when one looks at pure technical side. Their licensing however progressed to the point that feels like extortion to me.

[+] IshKebab|5 years ago|reply
I would recommend waiting for Qt 6.1 before considering using QtQuick/QML. They are apparently fixing a load of the issues with QML in that release. As it stands QML is kind of a mess.
[+] deng|5 years ago|reply
Heads up for anyone on a commercial license (this does not affect the LGPL-Version): Qt6 does not offer a perpetual license anymore, you need to switch to a subscription license. The catch is that you need a subscription license not only for development but also for distribution, meaning: you need to have a subscription for as long as you distribute your software with Qt6 under the commercial license!

Again: This only affects the commercial version! Nothing changes if you're using the LGPL version.

See also: (German) https://www.heise.de/news/Qt-6-Abomodell-koennte-zum-Fallstr...

(Google translate/English): https://translate.google.com/translate?hl=en&sl=de&u=https:/...

https://www.qt.io/faq/tag/subscription

EDIT: You also need a license if you only use your software with the commercial Qt6 license.

[+] hermitcrab|5 years ago|reply
I like developing in Qt. It is well designed, well documented and comprehensive. I like the power of slots and signals.

My experience developing Qt applications for ~20 years (mostly for Windows and Mac) is that it is very well supported on Windows, but less well supported on Mac. I really wish they would concentrate a bit more on making it look more native and be less buggy on the lastest version of macOS, rather than adding new features.

I list a few current issues with Qt 5.15 on macOS 11.0 here: https://successfulsoftware.net/2020/12/07/issues-with-qt-app...

And dialog widget layouts never look quite right on macOS.

I am not aware that Qt 6 fixes any of these issues. I hope they get fixed soon.

[+] ComputerGuru|5 years ago|reply
Oh wow, Qt has moved to CMake as a build system? I remember fighting with qmake back in 2008 and trying to integrate it into our build system (and trying to get it to play nice with bjam for some reason). This is welcome news.
[+] detaro|5 years ago|reply
What's specifically is new that Qt itself is built using cmake. You could use cmake to build apps using Qt for quite a while already.
[+] amelius|5 years ago|reply
Do they still use Moc?
[+] TorKlingberg|5 years ago|reply
We have used Qt in our video meeting products for a few years now and are pretty happy with it. For us it was especially important to have the same UI on plain embedded Linux, Android and Windows.

We were always going to use the commercial version so licensing wasn't a major problem, no worse than any other commercial library.

[+] avrionov|5 years ago|reply
Your windows app is not using QT as far as I can tell unless it is linked statically. Where do you use QT?
[+] seabird|5 years ago|reply
I see a lot of people that in this thread saying things along the lines of "just use it under LGPL". As somebody who uses Qt in a commercial setting, it is not that simple. The Qt Company will start twisting arms if they catch wind that you're not letting them squeeze you, and if your company has an antsy legal department, they're not even going to consider fucking around when The Qt Company starts snooping around to see if you're compliant; your lawyers will tell you to cough up and deal with the perpetual rent seeking they introduced with their subscription model. I've seen it happen first hand, and it can only be worse now that they force you to have an account with them to download the pre-built binaries they host.

I love Qt. For all of its warts, it is wildly powerful and doesn't get anywhere near the appreciation it deserves. With that out of the way, don't consider it for new commercial projects unless you're cool with being bled dry every step of the way by The Qt Company. As wonderful as it is, The Qt Company (either by design or ignorance) keeps expanding its expensive and confusing licensing model, and it doesn't look like that is ever going to get any better.

[+] mentos|5 years ago|reply
Looks like they have abstracted the rendering to a Rendering Hardware Interface, this is what UE4 has I wonder if the name and API are inspired?
[+] Nokinside|5 years ago|reply
Only viable Qt competitor in embedded is Rightware Kanzi. Has anyone here experience with them?

(ps. Most people lamenting the price of Qt have no need for Qt, should not buy Qt. If you have never heard about Kanzi or Telerik, you are not in the market)

[+] camgunz|5 years ago|reply
So, cards on the table I've been a Qt apologist, but the subscription thing for distribution seems nuts. But I'm genuinely curious: if I wanted to build a {thing}, how should I license it so that I can get credit and make money for my work, while also supporting FOSS? I think traditionally the model here is "GPL or you can pay for a perpetual commercial license". I think that's reasonable (and I think clearly not what Qt is doing anymore) strategy; are there things I should consider?
[+] throwaway546456|5 years ago|reply
It seems they dropped ball on mobile devices (iOS/android). In last few years they where mostly focusing on embedded, automotive and desktop. I wish they provided more indie friendly alternative license for mobile market something similar like Unreal Engine had e.g. taking ~5% of your revenue.

I know they recently provide 'small company license' and ~500usd/year is justified as long it's just hobby project if only your as a dev. The moment you reach $250k as a startup and have to hire few devs and pay $5k/year per each developer is making this less affordable. On top of that if you focusing on mobile devices (android/ios) probably you would need to have Felgo license (to cover some Qt limitations) which is crazily even more expensive.

At this point in few years Flutter, ReactNative, Unity, Unreal Engine and Electron will be slowly stealing more of Qt market.

[+] speedgoose|5 years ago|reply
Is there a plan to have native Windows 10 widgets ? The latest screenshot of the Windows widgets shows the classic widgets.

https://www.qt.io/hs-fs/hubfs/image-png-Nov-09-2020-06-37-27...

[+] nyanpasu64|5 years ago|reply
By Windows 10 widgets, do you mean UWP/Metro/Fluent widgets? In my opinion, the screenshot you linked is still common in Windows 10 apps.

If you want something closer to Metro, you can use Qt Quick and https://doc.qt.io/qt-5/qtquickcontrols2-styles.html#universa.... But Qt Widgets does not ship with a Metro-like theme.

Newer Windows 10 apps have Fluent design, including acrylic effects. I don't know if Qt Quick 2 supports that, but I'm not optimistic they've updated the appearance to match.

[+] ComputerGuru|5 years ago|reply
I mean, Qt doesn’t have any native widgets for any OS (to the best of my knowledge and unless things have changed). They just have “skins” for their own widgets that mimic (sometimes successfully) the underlying platform’s native widgets. So all you’re really asking for is a new theme, unless you really meant “native” in which case the answer is no.
[+] nunodonato|5 years ago|reply
it's so expensive, too bad there are no good alternatives to this
[+] c-smile|5 years ago|reply
Sciter (https://sciter.com) and Sciter.JS ( https://github.com/c-smile/sciter-js-sdk ) can be considered as alternative I think.

Sciter supports same platforms as Qt and uses H/W acceleration (DirectX, OpenGL) in 10 years or so.

Everything that you can do in Qt you can do in Sciter.

Just in case: Sciter.JS that is in alpha/beta now is aimed as a direct ElectronJS replacement as it uses standard JavaScript (ES6). It already supports MithrilJS and Svelte applications running transparently as in SciterJS as in browsers. React (PReact in particular) out of the box support is coming. The main goal of SciterJS is to provide compact (5mb runtime) desktop runtime environment that can use components and designs made for Web.

[+] tabtab|5 years ago|reply
Re: "too bad there are no good alternatives to this"

What about the Tk/Gtk family of products?

[+] zelly|5 years ago|reply
IMO the worst part about this is not the pricing change but the fact that they advertise using CMake as a selling point.
[+] akoumjian|5 years ago|reply
The nasty pretend exchanges between coworkers on this page is a really depressing way to highlight this tool: https://www.qt.io/design
[+] dec0dedab0de|5 years ago|reply
I don't think any of those messages are nasty. It looks like a team of people who feel comfortable enough to vent to each other, while not taking themselves too seriously.
[+] oblio|5 years ago|reply
And that's how we end up with stock images and press-release speak everywhere...

Doomed if you do, doomed if you don't.

[+] sgerenser|5 years ago|reply
Didn't even notice those until you pointed them out. Truly cringe-worthy.
[+] zerr|5 years ago|reply
No Windows 7 support?
[+] baybal2|5 years ago|reply
Takeaway for GTK+ crowd: Qt thrives, and GTK certainly doesn't.

KDE, and Gnome are both toolkits flagship projects.

Look at how much developer share KDE gained, and Gnome lost in the time since Gnome 3.0.

The reason is they had few very toxic "thought leaders" who alienated countless developers, and they did not have courage to give them a well deserved kick to the butt, not even an idea that doing so would be right.

Now, if they want to recover, even if they will give a kick to Lennart & Co., how would they do so if they have no normal devs left to deliver that kick, and carry on the project after?

[+] war1025|5 years ago|reply
My impression is that while Qt has quite widespread adoption, KDE is still pretty niche. The majority of that I'd guess is that Qt makes a point to be cross-platform. Gtk since 3.0 is pretty well Linux-only and content to stay that way.
[+] tabtab|5 years ago|reply
What does the Tk family lack to make "thrivable"? It doesn't have built-in resizable editable data grids, but that gap alone is not a show-stopper.
[+] m4rtink|5 years ago|reply
GTK is actually used quite a bit more on mobile these days thanks to all the distros and software targeting Pine Phone and Librem.
[+] tristan957|5 years ago|reply
GTK is thriving by all accounts. Could there be more devs on GTK itself? Yes. Are more and more applications being written in GTK? Yes. Look at Flathub and all the developers putting applications out there.
[+] lock-free|5 years ago|reply
Which distros are shipping with KDE by default?
[+] hugh4life|5 years ago|reply
Xfce, Cinnamon, and MATE all have a significant user base and they use GTK.
[+] qdhqdhqdg|5 years ago|reply
For me personally, the takeway is that both GTK and QT are getting old.

React (and Svelte, etc.) have completely changed the way we build apps, and typical QT & GTK apps are still being written in a retained mode approach with signals & callbacks like 20 years ago.

QML is quite interesting but it doesn't feel immediate mode enough like React & Svelte.

Flutter, JetPack Compose, Crochet, Fidget, Revery, MakePad, Svelte, etc. all those bring so many new ideas. GTK or QT feel so complicated and hard maintain in comparaison

[+] calibas|5 years ago|reply
Maybe someday I'll see Qt and not think "Huh, Quicktime?"