Сбой скрипта контроллера установщика QT при "addWizardPage"
У меня возникли некоторые проблемы с установщиком QT - я уже сделал все уроки (особенно http://doc.qt.io/qtinstallerframework/noninteractive.html), но я все еще настоящий новичок
Что мне нужно:
- установщик с выбором языка в качестве первой страницы
- добавление второго (сохраненного) пути в TargetDirectory
Что я имею:
- installscript.js (корень пакета)
- ControlScript.js (путь в config.xml)
Что я пробовал в ControlScript.js:
function Controller()
{
QMessageBox.information("DEBUG", "DEBUG", "DEBUG", QMessageBox.Ok);
installer.addWizardPage(component, "Start", QInstaller.Introduction);
QMessageBox.information("TEST", "TEST", "TEST", QMessageBox.Ok);
}
Start.ui я поместил в путь конфигурации и корень пакета, но ничего не происходит... второй MessageBox никогда не отображается - кажется, что установщик не работает
function Controller()
{
}
Controller.prototype.IntroductionPageCallback = function()
{
installer.addWizardPageItem(component ,"lineEdit",QInstaller.TargetDirectory);
}
то же самое - ничего не происходит, здесь установщик упал
надеюсь, вы можете помочь мне исправить код =)
а может кто-нибудь подскажите, пожалуйста, как изменить язык или установить новое растровое изображение (сформировать существующий ресурс) во время работы установщика?
я написал этот неполный код в installscript.js:
NewLanguageSeted = function()
{
var widget = gui.pageWidgetByObjectName("DynamicLanguageSelection");
QMessageBox.information("DEBUG", "DEBUG", "DEBUG", QMessageBox.Ok);
widget.Icon.setPixmap("");
installer.languageChanged();
QMessageBox.information("LanguageSelec", "LanguageSelec", "LanguageSelec", QMessageBox.Ok);
}
installer.languageChanged (); Изменит все тексты на основе файлов *.qm - но как я могу получить / установить реальный язык?
widget.Icon.setPixmap (""); изменяет растровое изображение - но мне нужно знать, что я должен вставить в ""
для файла пользовательского интерфейса я использую файл ресурсов:
<property name="pixmap">
<pixmap resource="../../../resource/resource.qrc">:/DuerrPictures/watermark.png</pixmap>
1 ответ
Насколько я знаю, страницы установщика не могут быть добавлены из скрипта контроллера. Если вы запустите установщик из QtCreator, вы увидите соответствующий отладочный вывод, который говорит что-то вроде component type is not defined
,
Чтобы добавить страницу, вы должны сделать это внутри скрипта компонента (например, конструктор). Этот будет выполнен сразу после того, как вы установили один из 3-х флажков. .ui
-файл тоже должен быть частью пакета:
Что касается второго линедита - это та же проблема! Функция принимает компонент в качестве аргумента - это должно быть сделано внутри installscript.js
,
installscript.js:
function Component()
{
QMessageBox.information("DEBUG", "DEBUG", "DEBUG", QMessageBox.Ok);
installer.addWizardPage(component, "Start", QInstaller.Introduction);
installer.addWizardPageItem(component ,"lineEdit",QInstaller.TargetDirectory);
QMessageBox.information("TEST", "TEST", "TEST", QMessageBox.Ok);
}
Растровое изображение должно быть установлено с использованием того же пути, который вы использовали в вашем.ui-файле, т.е. :/DuerrPictures/watermark.png
, Вы пробовали это?
И из-за вашей языковой проблемы - извините, но я ничего об этом не знаю. Проверьте API сценариев - там перечислены все классы сценариев, возможно, вы сможете что-то найти.