Instalação silenciosa Qt55 Enterprise no Windows
Edit: Com a ajuda do suporte ao Qt, resolvi como automatizar essas duas partes do instalador corporativo do Qt. abaixo estão as chamadas de script.
Estou tentando instalar silenciosamente o Qt 5.5.1 Enterprise no Windows 8.1 e Windows 10, usando a opção "--script" para chamar um javascript que automatiza a interface do usuário, mas parece que não consegue ler todos os elementos da interface do usuário para Leia-o.
Eu tenho duas páginas de controlador que funcionam de maneira diferente do instalador padrão do Qt, particularmente o "CredentialsPageCallback", que exige que uma caixa de seleção seja marcada antes de chamar "gui.clickButton (buttons.NextButton);" Ele também propõe uma nova página de retorno de chamada chamada "ManualLicensePageCallback", que não possui nenhuma documentação. Aqui está o script que estou escrevendo. Preciso do nome da caixa de seleção na página Credenciais e as duas chamadas "Edição de linha" na página Manual:
// Emacs mode hint: -*- mode: JavaScript -*-
function Controller() {
//installer.autoRejectMessageBoxes();
installer.installationFinished.connect(function() {
gui.clickButton(buttons.NextButton);
})
}
Controller.prototype.WelcomePageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.CredentialsPageCallback = function() {
gui.pageWidgetByObjectName("CredentialsPage").enterManuallyCheckBox.click();
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ManualLicensePageCallback = function() {
var page = gui.pageWidgetByObjectName("ManualLicensePage");
page.LicenseeLineEdit.setText("NAME");
page.Qt5KeyLineEdit.setText("REG KEY");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.IntroductionPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.TargetDirectoryPageCallback = function() {
gui.currentPageWidget().TargetDirectoryLineEdit.setText("C:\\Path\\To\\Install");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ComponentSelectionPageCallback = function() {
var widget = gui.currentPageWidget();
//BY DEFAULT, THE DEFAULT INSTALL METHOD IS SELECTED
//USE THESE WIDGET CALLS TO DESELECT ANY ITEMS
//widget.deselectAll();
//widget.deselectComponent("qt.55.win64_msvc2013_64");
//widget.deselectComponent("qt.55.qt3d");
//widget.deselectComponent("qt.55.qtquick1");
//widget.deselectComponent("qt.55.qtwebengine");
//widget.deselectComponent("qt.55.qtquickcontrols");
//widget.deselectComponent("qt.55.qtscript");
//widget.deselectComponent("qt.55.qtcanvas3d");
//widget.deselectComponent("qt.55.qtlocation");
//widget.deselectComponent("qt.tools");
//widget.deselectComponent("qt.extras");
//widget.deselectComponent("qt.enterpriseaddons");
gui.clickButton(buttons.NextButton);
}
Controller.prototype.LicenseAgreementPageCallback = function() {
gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
gui.clickButton(buttons.NextButton);
}
Controller.prototype.StartMenuDirectoryPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.ReadyForInstallationPageCallback = function() {
gui.clickButton(buttons.NextButton);
}
Controller.prototype.FinishedPageCallback = function() {
var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm
if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox) {
checkBoxForm.launchQtCreatorCheckBox.checked = false;
}
gui.clickButton(buttons.FinishButton);
}