(Discussion started at http://lists.qt-project.org/pipermail/development/2018-April/032461.html )
For newcomers, especially those who lack experience with using C++ libraries, the number of choices presented by the Qt installer can be overwhelming and confusing. Here are some examples of rookie mistakes ((1) and (2) are extremely common in the forums!):
- Some users don't realize Qt Creator != Qt. They install Qt Creator without Qt and end up unable to build anything: https://forum.qt.io/topic/84198/no-valid-kits-found
- Some users don't realize they need to install a compiler separately. They also end up unable to build anything: https://forum.qt.io/topic/79532/msvc2015-64bit-compiler-kit-installation-requirements
- Some users don't realize that "UWP x64 (MSVC 2017)" != "MSVC 2017 64-bit". They install the UWP version and wonder why they can't deploy to Windows 7: https://forum.qt.io/topic/85047/can-t-launch-application-dll-is-missing/
- Some users don't realize there are multiple kits per Qt version. They select "Qt 5.9.4" and then wonder why Qt is huge (35 GB): https://forum.qt.io/topic/87608/windows-install-download-size
Why it's an issue
While it is the developers' responsibility to understand these differences, I believe it would be beneficial to provide guidance to help newcomers avoid these simple mistakes.
Potential benefits include:
- Reduced frequency of forum posts on these topics.
- Improved retention rate of those who are trying Qt for the first time? (I don't have any stats, but I can imagine people getting frustrated by these mistakes, failing to fix things within a few hours/days, and walking away as a result)
Ideas for improvement
- Pop up a confirmation dialog if:
- User does not choose any Qt libraries
- User chooses too many Qt libraries???
- User chooses an add-on library without the corresponding "essential" libraries
- Pop up a notification if the user selected a kit but the corresponding compiler is not detected by the sdktool
- Re-structure the "selection tree" to make it less likely for users to get mixed up between "UWP x64 (MSVC 2017)" and "MSVC 2017 64-bit"
- See the ML thread for a possible structure.
- Requires a "proxy model" so that the displayed tree can have a different structure to the repository tree.
- This is related to the selective metadata grouping/downloading feature that's being planned at
- Before the user is asked to "Select the components to install", have a small wizard to ask a new user some questions.
- Possible questions:
- Which version(s): Latest version, LTS version, or older version?
- Which target platforms?
- Which compiler?
- Use the answers to pre-fill the "Selection Tree". and remind the user to download an external compiler if necessary.
- If the user doesn't care/know, we could default to the latest Desktop kit
- Possible questions: