Originally posted by discordian
View Post
Announcement
Collapse
No announcement yet.
Qt Announces Changes To Simplify Its Commercial Licensing
Collapse
X
-
- Likes 3
-
Originally posted by dremon_nl View PostWe switched from Qt to wxWidgets for our desktop application and in general are quite happy with this transition. There are few major advantages: it's much less bloated, can be easily customized and built for specific purposes using cmake, e.g. excluding unused features (practically impossible task with Qt), can be statically linked so no need for a "deployment tool" which bundles tens of megabytes of Qt runtime and dependencies. They are also more responsive to bug reports in general and it's being actively developed. And native look and feel on 3 major platforms is nice (on Linux it's GTK backend).
Comment
-
Originally posted by bug77 View Post
Can you elaborate a bit on the "excluding unused features" part? To my knowledge, Qt5 was about modularization (among other things) What were you trying to exclude and couldn't? (I haven't worked with Qt and probably never will since I'm not a C++ guy, I'm just curious.)
wxWidgets has cmake-based build system where you can choose what do you want to include in the library build. So you can turn off a lot of features if you don't use them, line MDI, ribbon, media controls, HTML, etc. And enable a static build, because they have very permissive license. Which produces a lean and mean cross-platform GUI library without any dependencies. And it's small comparing to a Qt: the build takes about 6 minutes on my Thinkpad laptop.
They also use a system webview instead of bundling 100MB Chromium engine (Edge, Safari or GTK webview) for a web component.
P.S. When Apple released M1 platform I just recompiled wxWidgets for ARM64 architecture and it worked. Qt struggled for more than a year to release a beta version.
- Likes 1
Comment
-
Originally posted by dremon_nl View Post
Qt for all practical purposes is a multi-gigabyte framework which you install using their official installer (outside of linux distro packaging with custom patches and hard binary dependencies on hundreds of other shared libs). This is basically all or nothing, and it's modular architecture is only applicable on a very high level defined by the Qt Company, e.g. a separation between QtCore, QtNetwork, QtGui, QtWidgets, QtWebEngine etc, which you can't really change. I mean, theoretically, having a source code, you can, but this is an impossible task considering the immense complexity and size of it. So from all practical purposes each Qt application must also include most of those core DLLs pre-built and pre-bundled for you. Plus all of the platform, imaging and other plugins they have, misc resource files, etc. They even have created macdeployqt and windeployqt (and there is also a 3rd-party linuxdeployqt) tool to facilitate application assembling, which takes all those huge DLLs and tens of even hundreds of other files and bundles them together so you can zip your app and give it to the user. And doing a cross compilation with Qt is extremely complicated making CI/CD a pain in the arse.
wxWidgets has cmake-based build system where you can choose what do you want to include in the library build. So you can turn off a lot of features if you don't use them, line MDI, ribbon, media controls, HTML, etc. And enable a static build, because they have very permissive license. Which produces a lean and mean cross-platform GUI library without any dependencies. And it's small comparing to a Qt: the build takes about 6 minutes on my Thinkpad laptop.
They also use a system webview instead of bundling 100MB Chromium engine (Edge, Safari or GTK webview) for a web component.
P.S. When Apple released M1 platform I just recompiled wxWidgets for ARM64 architecture and it worked. Qt struggled for more than a year to release a beta version.
An entire Qt app, less then 10MB installed. And not "hundreds of shared libs", but less than a dozen.
Granted, Qt can and is boneheaded in certain ways, but surely it's not as bad you're making it sound.
Comment
-
Originally posted by bug77 View Post
I understand what you're saying, but then we have this:
An entire Qt app, less then 10MB installed. And not "hundreds of shared libs", but less than a dozen.
Granted, Qt can and is boneheaded in certain ways, but surely it's not as bad you're making it sound.
- Likes 1
Comment
-
Originally posted by Jaxad0127 View Post
That package doesn't install its own Qt, it depends on system Qt, allowing it to be smaller than a standalone distribution. The dependencies include qt5-multimedia and qt5-svg. The file list confirms it barely installs anything itself.
So yes, when using the wrong tool for the job, your job will suck (I should know, I'm shoving Java where it's not even remotely the right solution). Luckily, dremon_nl was able to drop the wrong tool and go for the right one. I know many projects won't allow that, for one reason or another.
Comment
-
Originally posted by bug77 View Post
For some reason Wikipedia indeed describes Qt as a "widget toolkit", but the official wiki gets it right: "application development framework".
- Likes 1
Comment
-
Originally posted by dremon_nl View PostOne disadvantage of it is that it basically forces you into their object, ownership and async event-based model for almost everything.
They both have their uses, you just need to pick carefully.
- Likes 2
Comment
Comment