Сбой скрипта контроллера установщика 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 сценариев - там перечислены все классы сценариев, возможно, вы сможете что-то найти.

Другие вопросы по тегам