[Interest] My first 5 years with Qt and 2 suggestions
fromqt at tungware.se
Thu May 9 02:09:30 CEST 2019
Hi, 5 years ago I started with Qt, it's been a very nice ride, thank
you! Looking forward to the next 5. Got 2 suggestions:
1) Make Qt more easily accessable for first timers:
Why not introduce a Qt Starter Pack?
I'm thinking of an *extremely* simplified installation tool. For
Windows, it could be Qt LTS version bundled with the 32-bit MinGW compiler.
No login, no selection of kits and no selection of a directory where to
install (instead hardwired to C:\Qt). Just one big button: "Install".
Uninstall is done through the control panel. No updates possible,
2) Improved Qt DLL morphology: for a given DLL, today we have very
coarse naming schemes, it's either Qt4Core.dll, Qt5Core.dll or
Qt6Core.dll (and similar namings on the other platforms).
On the Qt forums I see questions, they have the MinGW version installed,
and instead of windeployqt, for deployment they have manually copied the
DLLs from the QtCreator bin directory --> DLL hell.
Or they have a Qt program like Krita installed on their C:, and some
PATH setting causes Qt DLLs to clash with their Qt installation or
deployment --> DLL hell.
Or they have copied Qt5Core.dll with wrong bitness, 64 instead of 32 etc.
For that last syndrome, I remember from my Visual Basic days, there were
16-bit and 32-bit versions, but Microsoft had different DLL names then,
either VBRUN40016.DLL or VBRUN40032.DLL. (Today for example
vcruntime140.dll has the same name regardless of bitness, 32-bit version
is in C:\Windows\SysWOW64 and 64-bit version is in C:\Windows\System32,
if this seems logical you need to change medication.)
So my suggestion is, let's reverse this trend, introduce a much more
fine-grained naming scheme, examples:
Qt5Core.dll for Qt 5.12.3 MSVC2017 32-bit --> QtCore51203MS1732.dll
Qt5Core.dll for Qt 5.12.3 MSVC2017 64-bit --> QtCore51203MS1764.dll
Qt5Core.dll for Qt 5.12.3 MinGW7.3.0 32 bit --> QtCore51203GW7332.dll
Qt5Core.dll for Qt 5.12.3 MinGW7.3.0 64 bit --> QtCore51203GW7364.dll
Qt5Gui.dll for Qt 5.12.3 MSVC2017 32-bit --> QtGui51203MS1732.dll
Qt5Gui.dll for Qt 5.12.3 MSVC2017 64-bit --> QtGui51203MS1764.dll
Qt5Gui.dll for Qt 5.12.3 MinGW7.3.0 32 bit --> QtGui51203GW7332.dll
Qt5Gui.dll for Qt 5.12.3 MinGW7.3.0 64 bit --> QtGui51203GW7364.dll
and so on.
This naming scheme would eliminate lots of DLL hells occurring today in
Windows, and would be much more tolerant/allowing to a Windows system
having multiple Qt installations of different versions.
More information about the Interest