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.
> 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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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)
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?
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.
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.
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.
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.
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.
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?
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.
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.
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
[+] [-] lazypenguin|5 years ago|reply
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
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
[+] [-] brnt|5 years ago|reply
[+] [-] tabtab|5 years ago|reply
It's annoying how many dump efficient UI design to chase the latest fads. We Vulcans cry.
[+] [-] egwor|5 years ago|reply
[+] [-] hermitcrab|5 years ago|reply
[+] [-] nikanj|5 years ago|reply
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
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
[+] [-] deng|5 years ago|reply
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
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
[+] [-] detaro|5 years ago|reply
[+] [-] amelius|5 years ago|reply
[+] [-] TorKlingberg|5 years ago|reply
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
[+] [-] emddudley|5 years ago|reply
https://www.qt.io/blog/add-on-support-in-qt-6.0-and-beyond
[+] [-] seabird|5 years ago|reply
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
[+] [-] Nokinside|5 years ago|reply
(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
[+] [-] throwaway546456|5 years ago|reply
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
https://www.qt.io/hs-fs/hubfs/image-png-Nov-09-2020-06-37-27...
[+] [-] nyanpasu64|5 years ago|reply
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
[+] [-] pabs3|5 years ago|reply
https://perezmeyer.blogspot.com/2020/08/stepping-down-as-qt-... https://lists.qt-project.org/pipermail/development/2020-Augu...
[+] [-] nunodonato|5 years ago|reply
[+] [-] MaxBarraclough|5 years ago|reply
[+] [-] c-smile|5 years ago|reply
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.
[+] [-] shaan7|5 years ago|reply
[+] [-] kayson|5 years ago|reply
https://www.wxwidgets.org/
[+] [-] justin66|5 years ago|reply
https://www.copperspice.com/
[+] [-] tabtab|5 years ago|reply
What about the Tk/Gtk family of products?
[+] [-] zelly|5 years ago|reply
[+] [-] akoumjian|5 years ago|reply
[+] [-] dec0dedab0de|5 years ago|reply
[+] [-] oblio|5 years ago|reply
Doomed if you do, doomed if you don't.
[+] [-] sgerenser|5 years ago|reply
[+] [-] zerr|5 years ago|reply
[+] [-] baybal2|5 years ago|reply
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
[+] [-] tabtab|5 years ago|reply
[+] [-] m4rtink|5 years ago|reply
[+] [-] tristan957|5 years ago|reply
[+] [-] lock-free|5 years ago|reply
[+] [-] hugh4life|5 years ago|reply
[+] [-] qdhqdhqdg|5 years ago|reply
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
[+] [-] unixhero|5 years ago|reply
[+] [-] calibas|5 years ago|reply