2016-02-11 2 views
1

я получил некоторые проблемы с QT Installer - уже сделаны все учебники (особенно http://doc.qt.io/qtinstallerframework/noninteractive.html), но я до сих пор реальным новичкомавария QT контроллера установки сценария в то время как «addWizardPage»

Что мне нужно:

  • инсталлятор с выбором языка в качестве первой страницы
  • добавления второго (сохранить) путь в Целевой_каталог

Что у меня есть:

  • 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); 
} 

же - ничего не происходит здесь инсталлятор разбился

надеются, что вы можете помочь мне исправить код =)

и может кто-то пожалуйста, скажите мне, как изменить язык или установить новое растровое изображение (сформировать существующий ressource) во время установки установщика?

я написал этот незавершенный код в 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 (""); изменяет растровое изображение - но я должен знать, что я должен вставить в «»

для файла Ui я использовать файл ресурсов:

<property name="pixmap"> 
     <pixmap resource="../../../resource/resource.qrc">:/DuerrPictures/watermark.png</pixmap> 

ответ

0

Насколько я знаю, инсталлятор страницы canno't быть добавлен из сценария контроллера. Если вы запустите установщик из QtCreator, вы увидите соответствующий вывод отладки, который говорит что-то вроде component type is not defined.

Чтобы добавить страницу, вы должны сделать это внутри скрипта компонента (например, конструктора). Это будет выполнено сразу после того, как вы выберете один из трех флажков. Файл .ui также должен быть частью пакета:

Что касается второго linedit - это та же проблема! Функция принимает компонент как аргумент - это должно быть сделано внутри 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. Попробовали?

И для вашей языковой проблемы - извините, но я ничего не знаю об этом. Проверьте Scripting API - все классы скриптов перечислены там, возможно, вы можете что-то найти.