[Interest] My first 5 years with Qt and 2 suggestions

Henry Skoglund 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, 
uninstall/download/reinstall only.

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.

Rgrds Henry

More information about the Interest mailing list