I found one of the Windows label values โโin a file called components.xml
when searching through XML files in installation 5.8. After looking at all this, it looks like this file is generated by your options during installation. So I completely installed the latest Qt (5.9.0) released, with the exception of Source, which I knew was "qt.59.src"
for the component label after experimenting with some of them.
As for the direct control of the interface elements, to get them, I tried all the UI control tools from the gui-inspect-tool repo, but none of them failed. UISpy.exe
provided more information, but was rather unstable. It seems that Qt does not distribute its component names in the "Name" field for ease of use with WinAPI and the built-in inspectors of the Windows user interface. All Name fields were either empty or returned errors from all user interface validation tools.
After installation, you can open the components.xml file on your basic qt installation.
Then find the term Prebuilt
for the entire file. Each hit will lead you to the description field, and two lines above it is the name field that you need. Since 5.9, I think there is one exception for it regarding pre-created binaries and that is (deprecated) Qt Script.
Here is an example of one of the packages in components.xml:
<Package> <Name>qt.59.android_armv7</Name> <Title>Android ARMv7</Title> <Description>Qt 5.9.0 Prebuilt Components for Android ARMv7</Description> <Version>5.9.0-0</Version> <LastUpdateDate></LastUpdateDate> <InstallDate>2017-06-16</InstallDate> <Size>145381493</Size> <Dependencies>qt.tools.qtcreator,qt.59.doc,qt.59.examples,qt.tools.win32_mingw530</Dependencies> <Checkable>true</Checkable> </Package>
That <Name>
of qt.59.android_armv7
is the actual component string used for your QS file, for example,
Controller.prototype.ComponentSelectionPageCallback = function() { var widget = gui.currentPageWidget(); widget.selectAll(); widget.deselectComponent("qt.59.android_armv7"); gui.clickButton(buttons.NextButton); }
To save some people some time who can use 5.9 or an installer with a similar structure, here are all the shortcut names for different off-the-shelf platforms:
Android ARMv7: "qt.59.android_armv7"
Android x86: "qt.59.android_x86"
MinGW 5.3.0 32 bit: "qt.59.win32_mingw53"
msvc2017 64-bit: "qt.59.win64_msvc2017_64"
msvc2015 32-bit: "qt.59.win32_msvc2015"
msvc2015 64-bit: "qt.59.win64_msvc2015_64"
msvc2013 64-bit: "qt.59.win64_msvc2013_64"
UWP x64 (MSVC2015): "qt.59.win64_msvc2015_winrt_x64"
UWP x64 (MSVC2017): "qt.59.win64_msvc2017_winrt_x64"
UWP x86 (MSVC2015): "qt.59.win64_msvc2015_winrt_x86"
UWP x86 (MSVC2017): "qt.59.win64_msvc2017_winrt_x86"
UWP armv7 (MSVC2015): "qt.59.win64_msvc2015_winrt_armv7"
UWP armv7 (MSVC2017): "qt.59.win64_msvc2017_winrt_armv7"
As an additional courtesy, here is a dump of all components. Some of them actually depend on the component you have chosen, so your mileage will vary:
"qt" "qt.59" "qt.59.android_armv7" "qt.59.android_x86" "qt.59.doc" "qt.59.doc.qtcharts" "qt.59.doc.qtdatavis3d" "qt.59.doc.qtnetworkauth" "qt.59.doc.qtpurchasing" "qt.59.doc.qtremoteobjects" "qt.59.doc.qtscript" "qt.59.doc.qtspeech" "qt.59.doc.qtvirtualkeyboard" "qt.59.doc.qtwebengine" "qt.59.examples" "qt.59.examples.qtcharts" "qt.59.examples.qtdatavis3d" "qt.59.examples.qtnetworkauth" "qt.59.examples.qtpurchasing" "qt.59.examples.qtremoteobjects" "qt.59.examples.qtscript" "qt.59.examples.qtspeech" "qt.59.examples.qtvirtualkeyboard" "qt.59.examples.qtwebengine" "qt.59.qtcharts" "qt.59.qtcharts.android_armv7" "qt.59.qtcharts.android_x86" "qt.59.qtcharts.win32_mingw53" "qt.59.qtcharts.win32_msvc2015" "qt.59.qtcharts.win64_msvc2013_64" "qt.59.qtcharts.win64_msvc2015_64" "qt.59.qtcharts.win64_msvc2015_winrt_armv7" "qt.59.qtcharts.win64_msvc2015_winrt_x64" "qt.59.qtcharts.win64_msvc2015_winrt_x86" "qt.59.qtcharts.win64_msvc2017_64" "qt.59.qtcharts.win64_msvc2017_winrt_armv7" "qt.59.qtcharts.win64_msvc2017_winrt_x64" "qt.59.qtcharts.win64_msvc2017_winrt_x86" "qt.59.qtdatavis3d" "qt.59.qtdatavis3d.android_armv7" "qt.59.qtdatavis3d.android_x86" "qt.59.qtdatavis3d.win32_mingw53" "qt.59.qtdatavis3d.win32_msvc2015" "qt.59.qtdatavis3d.win64_msvc2013_64" "qt.59.qtdatavis3d.win64_msvc2015_64" "qt.59.qtdatavis3d.win64_msvc2015_winrt_armv7" "qt.59.qtdatavis3d.win64_msvc2015_winrt_x64" "qt.59.qtdatavis3d.win64_msvc2015_winrt_x86" "qt.59.qtdatavis3d.win64_msvc2017_64" "qt.59.qtdatavis3d.win64_msvc2017_winrt_armv7" "qt.59.qtdatavis3d.win64_msvc2017_winrt_x64" "qt.59.qtdatavis3d.win64_msvc2017_winrt_x86" "qt.59.qtnetworkauth" "qt.59.qtnetworkauth.android_armv7" "qt.59.qtnetworkauth.android_x86" "qt.59.qtnetworkauth.win32_mingw53" "qt.59.qtnetworkauth.win32_msvc2015" "qt.59.qtnetworkauth.win64_msvc2013_64" "qt.59.qtnetworkauth.win64_msvc2015_64" "qt.59.qtnetworkauth.win64_msvc2015_winrt_armv7" "qt.59.qtnetworkauth.win64_msvc2015_winrt_x64" "qt.59.qtnetworkauth.win64_msvc2015_winrt_x86" "qt.59.qtnetworkauth.win64_msvc2017_64" "qt.59.qtnetworkauth.win64_msvc2017_winrt_armv7" "qt.59.qtnetworkauth.win64_msvc2017_winrt_x64" "qt.59.qtnetworkauth.win64_msvc2017_winrt_x86" "qt.59.qtpurchasing" "qt.59.qtpurchasing.android_armv7" "qt.59.qtpurchasing.android_x86" "qt.59.qtpurchasing.win32_mingw53" "qt.59.qtpurchasing.win32_msvc2015" "qt.59.qtpurchasing.win64_msvc2013_64" "qt.59.qtpurchasing.win64_msvc2015_64" "qt.59.qtpurchasing.win64_msvc2015_winrt_armv7" "qt.59.qtpurchasing.win64_msvc2015_winrt_x64" "qt.59.qtpurchasing.win64_msvc2015_winrt_x86" "qt.59.qtpurchasing.win64_msvc2017_64" "qt.59.qtpurchasing.win64_msvc2017_winrt_armv7" "qt.59.qtpurchasing.win64_msvc2017_winrt_x64" "qt.59.qtpurchasing.win64_msvc2017_winrt_x86" "qt.59.qtremoteobjects" "qt.59.qtremoteobjects.android_armv7" "qt.59.qtremoteobjects.android_x86" "qt.59.qtremoteobjects.win32_mingw53" "qt.59.qtremoteobjects.win32_msvc2015" "qt.59.qtremoteobjects.win64_msvc2013_64" "qt.59.qtremoteobjects.win64_msvc2015_64" "qt.59.qtremoteobjects.win64_msvc2015_winrt_armv7" "qt.59.qtremoteobjects.win64_msvc2015_winrt_x64" "qt.59.qtremoteobjects.win64_msvc2015_winrt_x86" "qt.59.qtremoteobjects.win64_msvc2017_64" "qt.59.qtremoteobjects.win64_msvc2017_winrt_armv7" "qt.59.qtremoteobjects.win64_msvc2017_winrt_x64" "qt.59.qtremoteobjects.win64_msvc2017_winrt_x86" "qt.59.qtscript" "qt.59.qtscript.android_armv7" "qt.59.qtscript.android_x86" "qt.59.qtscript.win32_mingw53" "qt.59.qtscript.win32_msvc2015" "qt.59.qtscript.win64_msvc2013_64" "qt.59.qtscript.win64_msvc2015_64" "qt.59.qtscript.win64_msvc2017_64" "qt.59.qtspeech" "qt.59.qtspeech.android_armv7" "qt.59.qtspeech.android_x86" "qt.59.qtspeech.win32_mingw53" "qt.59.qtspeech.win32_msvc2015" "qt.59.qtspeech.win64_msvc2013_64" "qt.59.qtspeech.win64_msvc2015_64" "qt.59.qtspeech.win64_msvc2017_64" "qt.59.qtvirtualkeyboard" "qt.59.qtvirtualkeyboard.win32_mingw53" "qt.59.qtvirtualkeyboard.win32_msvc2015" "qt.59.qtvirtualkeyboard.win64_msvc2013_64" "qt.59.qtvirtualkeyboard.win64_msvc2015_64" "qt.59.qtvirtualkeyboard.win64_msvc2017_64" "qt.59.qtwebengine" "qt.59.qtwebengine.win32_msvc2015" "qt.59.qtwebengine.win64_msvc2015_64" "qt.59.qtwebengine.win64_msvc2017_64" "qt.59.src" "qt.59.win32_mingw53" "qt.59.win32_msvc2015" "qt.59.win64_msvc2013_64" "qt.59.win64_msvc2015_64" "qt.59.win64_msvc2015_winrt_armv7" "qt.59.win64_msvc2015_winrt_x64" "qt.59.win64_msvc2015_winrt_x86" "qt.59.win64_msvc2017_64" "qt.59.win64_msvc2017_winrt_armv7" "qt.59.win64_msvc2017_winrt_x64" "qt.59.win64_msvc2017_winrt_x86" "qt.enterpriseaddons" "qt.enterpriseaddons.qtquickcompiler" "qt.enterpriseaddons.qtquickcompiler.doc" "qt.enterpriseaddons.qtquickcompiler.qt59.android_armv7" "qt.enterpriseaddons.qtquickcompiler.qt59.android_x86" "qt.enterpriseaddons.qtquickcompiler.qt59.win32_mingw53" "qt.enterpriseaddons.qtquickcompiler.qt59.win32_msvc2015" "qt.enterpriseaddons.qtquickcompiler.qt59.win64_msvc2013_64" "qt.enterpriseaddons.qtquickcompiler.qt59.win64_msvc2015_64" "qt.enterpriseaddons.qtquickcompiler.qt59.win64_msvc2015_winrt_armv7" "qt.enterpriseaddons.qtquickcompiler.qt59.win64_msvc2015_winrt_x64" "qt.enterpriseaddons.qtquickcompiler.qt59.win64_msvc2015_winrt_x86" "qt.enterpriseaddons.qtquickcompiler.qt59.win64_msvc2017_64" "qt.enterpriseaddons.qtquickcompiler.qt59.win64_msvc2017_winrt_armv7" "qt.enterpriseaddons.qtquickcompiler.qt59.win64_msvc2017_winrt_x64" "qt.enterpriseaddons.qtquickcompiler.qt59.win64_msvc2017_winrt_x86" "qt.installer.changelog" "qt.license.automotive" "qt.license.embedded" "qt.license.enterprise" "qt.license.python" "qt.tools" "qt.tools.perl" "qt.tools.qtcreator" "qt.tools.qtcreator.enterprise.plugins" "qt.tools.qtcreatorcdbext" "qt.tools.vcredist_msvc2015_x64" "qt.tools.vcredist_msvc2015_x86" "qt.tools.win32_mingw530"
As a complete function, this is the actual function that I use for our Windows installations:
Controller.prototype.ComponentSelectionPageCallback = function() { var widget = gui.currentPageWidget(); widget.selectAll(); widget.deselectComponent("qt.59.android_x86"); widget.deselectComponent("qt.59.android_armv7"); widget.deselectComponent("qt.59.win32_mingw53"); widget.deselectComponent("qt.59.win64_msvc2013_64"); widget.deselectComponent("qt.59.win64_msvc2017_winrt_armv7"); widget.deselectComponent("qt.59.win64_msvc2015_winrt_armv7"); widget.deselectComponent("qt.59.src"); widget.deselectComponent("qt.tools.perl"); widget.deselectComponent("qt.tools.win32_mingw530"); gui.clickButton(buttons.NextButton); }
If you want to see how to make one of these scripts from scratch, you should check this answer to get started: fooobar.com/questions/239227 / ...
Update for 5.9.1
Change all lines from 59.
to 591.
for 5.9.1; if you use the same script for 5.9.0 as 5.9.1, it will try to install everything because it did not deselect the correct components.
Update for 5.9.3
It seems like they gratefully adhered to the same convention 5.9.1, so just change 59
to 593
; I assume this will also be the case for 5.9.2 and any subsequent releases of 5.9.