10 ms·
I would love to use Qt for personal for profit projects, but at $79/month (the cheapest commercial option) I find it too expensive, as a independent developer w
by messutied 10y ago
I would love to use Qt for personal for profit projects, but at $79/month (the cheapest commercial option) I find it too expensive, as a independent developer with pet projects that might not generate much (if at all).
What other good options do you know for building multi-platform nice-looking desktop UIs, I dont want to go with electron but so far is the best option I see for fast and cheap development, with the tradeoff of 50mb simple apps and not so great performance.
- zerr 10y agoYou can use Qt for commercial projects for free, including mobile platforms. This is not highly advertised, but you can... :)
- ktta 10y agoAFAIK you'll have to have a GPL your code right? If you want to keep the source closed, then you'll have to get a commercial license which costs money. Can you refer me to where you saw that you can use Qt for free with being able to keep your source closed? (you still can monetize open source programs so there's that) Or are you referring to LGPL?
- gcp 10y agoQt is LGPLv3, not only GPL afaik?
- jtuente 10y agoThe licensing has changed a bit over the past year. The biggest difference between the LGPL and GPL versions is that Charts and Data Visualization aren't available under LGPL, and Qt Quick is limited to OpenGL. https://www.qt.io/licensing-comparison/ https://www.qt.io/licensing-comparison/
- zerr 10y agoQt is LGPL (3 ?), so you can use it for closed source proprietary projects assuming that it is possible to re-link your project (with Qt). I.e. you should use Qt as .so/.dll dynamic lib for desktop apps. For Android it is same as I understand. As for iOS - where as I remember you have to build static binary - just providing your .obj files is enough. So it is compiled, not open source.
- slavik81 10y agoIf you use dynamic linking and target open platforms, like desktops, you can easily fulfill all the terms of the LGPL [1] without releasing your own code. See 3.7 of the Qt Legal FAQ [2]. [1] https://tldrlegal.com/license/gnu-lesser-general-public-license-v3-(lgpl-3) https://tldrlegal.com/license/gnu-lesser-general-public-lice... [2] https://www.qt.io/faq/#_Toc453700715 https://www.qt.io/faq/#_Toc453700715
- messutied 10y agoWow I didnt know this, thanks! I'll look it up :)
- plq 10y agoI'd love to see some evidence to back your claims regarding mobile platforms. To satisfy LGPL, your users need to be able to swap Qt versions. For desktop platforms, that's trivial to do: Use dynamic linking and your users will be able to fiddle with the shared library files to their heart's content. However, for IOS or Android, the moment the user changes the contents of your package, your signature is void and the vanilla platforms don't let the user install modified versions of your binary. For IOS, there are additional hurdles like the requirement to statically link or the licence incompatiblility when interfacing with IOS which to me boils down to this: If you are distributing a non-free app built with Qt Open Source via Google's Play Store or Apple's App Store, you are in violation of the terms of Qt's license. The fact that the Qt company tries to play nice with the industry doesn't make it any less so. I'd love to be proven wrong, but I'm just tired of watching this subject being discussed with nothing more than handwavy arguments, winks and smileys.
- aeruder 10y ago100% correct. Far too many misinterpretations of the LGPL out there seem to ignore the requirement that the LGPL'd portion must be able to be replaced/updated. I've seen way too many LGPL-licensed embedded-C libraries and VHDL libraries where it just does not make any sense. If your target platform doesn't have a dynamic linker, then LGPL is the same as GPL. There are some hacks where people distribute unlinked .o/.obj files. This is acceptable as well, but I don't see it too often.
- zerr 10y agoI've answered below: https://news.ycombinator.com/item?id=12653246 https://news.ycombinator.com/item?id=12653246 So for mobile platforms you can publish compiled .obj files.
- pjmlp 10y agoThe approach I use on my hobby projects between Android and WinRT (nowadays UWP). A MVVM architecture with the business logic in C++, and views written in Java, C++/CX. It used to be less effort than trying to make Qt look like native UI, while at the same time having to write wrappers for the platform APIs not supported by Qt. Other alternative I am now looking into, is moving into Xamarin.
- 77pt77 10y ago> It used to be less effort than trying to make Qt look like native UI So it isn't any more?
- pjmlp 10y agoI don't know, since I never bothered to try it again after 5.4.
- jventura 10y agoI do the same for my apps, but with a Python "backend". It allows me to use Python on my webapps, and Python on Android through JNI and Java on the frontend (https://github.com/joaoventura/pybridge https://github.com/joaoventura/pybridge)
- macco 10y agolibui (https://github.com/andlabs/libui https://github.com/andlabs/libui) seems promising.
- gcp 10y agoDoesn't do mobile (unlike Qt). If mobile isn't an issue then by all means wxWidgets!
- vesinisa 10y agoWhat exactly is the issue with LGPL licensing?
- radix07 10y agoIt's confusing as hell what you can actually do with it... Even talking to Qt sales, it is a little fuzzy on what is allowable or not. But in general yes, you can create commercial products as long as you don't modify their stuff or link to it improperly or look at it wrong.
- joezydeco 10y agoI'm a Qt developer with 10 years under my belt and I still can't figure it out. But something has radically changed with the new LGPL licensing in recent versions, from what I can tell. I recently received an RFP from a very large European vehicle manufacturer, the RFP requested that Qt 5.6 should be used and no later. (The licensing changed with 5.7, so their lawyers must have figured this out)
- radix07 10y agoThat sounds concerning, I would really like to know more about what that really means. I briefly started investigating the changes for Qt 5.7 before I started having flashbacks of trying to figure out all this LGPL stuff again. Does not seem to be any less confusing...
- joezydeco 10y agoMy team didn't take the proposal, but from what I gathered during some fact-finding the 5.7 terms changed what you need to distribute to customers regarding the Qt libraries. Before, you had to maintain a Qt source repository that matched distribution. People could build and link in Qt as they pleased, either vanilla from that repo or modified as they liked. With 5.7 and the new LGPL, it seemed that you also have to provide the entire toolchain needed to build the source and link it into the final application. Which means you also need to provide the kernel headers and etc that match up. I could be totally wrong. But I'm guessing 5.7 required too much other stuff be made public and the customer wasn't pleased with that. Can't say I disagree.
- mbaye 10y agoTry wxWidgets or the python bindings wxPython.
- vilya 10y ago"Dear ImGui" (https://github.com/ocornut/imgui https://github.com/ocornut/imgui) is an absolute delight to use. Can't recommend it highly enough. It's not suitable for every project, but when it does fit then I can't think of anything else I'd rather use.
- swah 10y agoI hope they manage to make bootstrap-like themes that people can reuse - not a fan of the original look, but the code and philosophy are superb.
- ComodoHacker 10y agoSciter is definitely an option. http://sciter.com/ http://sciter.com/