Я должен отключить стандартную кнопку «Далее» на своей странице через файл installscript.qs.
Я могу отключить свою собственную кнопку (которую я создал в файле .ui) с помощью скрипта .qs следующим образом: widget.myButton.setEnabled(false);
это man показывает, что родные кнопки представлены как перечисление, и я не могу отключить их таким же образом.
Страница руководства по сценариям контроллера показывает некоторые взаимодействия с собственными кнопками. подобно gui.clickButton(buttons.NextButton)
, Я прохожу весь объект gui человек и не нашел ничего полезного.
Каркас установщика Qt имеет собственную страницу проверки лицензии с нужной мне логикой кнопки Next, но я не нашел примеров, которые делают это вручную. (страница лицензии работает, потому что ее страница лицензии по умолчанию и ее логика внутри фреймворка, как я понимаю).
Наконец-то я найденный Метод isComplete (), который может быть полезен для меня, но он предназначен для C ++ API, а не для qs.
Так как же отключить нативную кнопку через файл installscript.qs?
На случай, если кто-то еще окажется здесь, я наконец нашел более чистое решение: динамический виджет имеет свойство complete
это можно изменить, чтобы включить или отключить кнопку «Далее». Установите это false
отключить кнопку.
Controller.prototype.DynamicMyWidgetCallback = function()
{
var currentWidget = gui.currentPageWidget();
if (currentWidget != null)
{
currentWidget.complete = false
}
}
Единственное решение, которое я нашел, это звонок installer.setValue("canContinue" "false");
Затем подключите страницу введенного события, используя gui.pageById(QInstaller.TargetDirectory).entered.
connect(Component.prototype.targetPageEntered);
В targetPageEntered
проверьте нашу ценность:
Component.prototype.targetPageEntered = function () {
if (installer.value("canContinue") != "true") {
gui.clickButton(buttons.BackButton);
QMessageBox.information("someid", "Installer",
"You must do smth to continue", QMessageBox.Ok);
}
}
Конечно, вам нужно изменить installer.value
когда пользователь выполнит необходимые действия.