1

我在使用 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);

}

安装程序.languageChanged(); 将根据 *.qm 文件更改所有文本 - 但我如何获取/设置实际语言?

小部件.Icon.setPixmap(""); 更改像素图 - 但我需要知道我必须在“”中插入什么

对于 ui 文件,我使用资源文件:

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

1 回答 1

1

据我所知,无法从控制器脚本中添加安装程序页面。如果您从 QtCreator 运行安装程序,您将看到相应的调试输出,其中显示类似component type is not defined.

要添加页面,您必须在组件脚本(例如构造函数)中进行。这一项将在您选择 3 个复选框之一后立即执行。.ui-file 也必须是包的一部分:

关于第二个 linedit - 这是同样的问题!该函数将一个组件作为参数 - 它必须在installscript.js.

安装脚本.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 - 所有脚本类都列在那里,也许你能找到一些东西。

于 2016-02-11T17:21:13.380 回答