退出安装程序示例

使用组件脚本退出安装程序。

退出安装程序演示了如何使用Component()函数显示消息框,以便在安装未满足某些要求时允许最终用户取消安装。

配置示例安装程序

安装程序配置文件config.xml位于config目录中,指定了安装程序中使用的文本和默认值。

  • <Name>元素设置应用程序名称,并将其添加到页面名称和介绍文本中。
  • <Version>元素设置应用程序版本号。
  • <Title>元素设置安装程序名称,并在标题栏中显示。
  • <Publisher>元素设置软件的发布者(例如,在Windows控制面板中显示)。
  • <StartMenuDir>元素设置Windows中产品的默认程序组名称在“开始”菜单中。
  • <TargetDir>元素将默认目标目录位置设置为当前用户主目录下的IfwExamples目录内部(因为它将预定义变量, @HomeDir@, 作为值的一部分使用)。更多信息,请参阅预定义变量
<?xml version="1.0" encoding="UTF-8"?>
<Installer>
    <Name>Quit Installer Example</Name>
    <Version>1.0.0</Version>
    <Title>Quit Installer Example</Title>
    <Publisher>Qt-Project</Publisher>
    <StartMenuDir>Qt IFW Examples</StartMenuDir>
    <TargetDir>@HomeDir@/IfwExamples/quitinstaller</TargetDir>
</Installer>

创建示例包信息文件

安装程序包信息文件package.xml位于meta目录中,指定了可用于安装的组件。

  • <DisplayName>元素设置组件的易读名称。
  • <Description>元素设置组件的易读说明。
  • <Version>元素设置组件的版本号。
  • <ReleaseDate>元素设置此组件版本的发布日期。
  • <Default>元素设置为true以在安装程序中预选组件。
  • <Script>元素指定要加载执行操作使用的JavaScript文件的名称。
<?xml version="1.0"?>
<Package>
    <DisplayName>Quit an installer</DisplayName>
    <Description>Quits the installer in a nice way, if there is something missing</Description>
    <Version>1.0.1</Version>
    <ReleaseDate>2013-02-27</ReleaseDate>
    <Default>true</Default>
    <Script>installscript.js</Script>
</Package>

退出安装

在installscript.js中,我们使用Component()函数为最终用户提供退出安装程序的消息框。

function Component()
{
    var result = QMessageBox["question"]("test.quit", "Installer", "Do you want to quit the installer?<br>" +
        "This message box was created using JavaScript.", QMessageBox.Ok | QMessageBox.Cancel);

如果最终用户选择确定,我们使用installer::setValue()函数显示消息,并使用installer.setDefaultPageVisible()函数隐藏随后的安装程序页面

    if (result == QMessageBox.Ok) {
        installer.setValue("FinishedText", "<font color='red' size=3>The installer was quit.</font>");
        installer.setDefaultPageVisible(QInstaller.TargetDirectory, false);
        installer.setDefaultPageVisible(QInstaller.ReadyForInstallation, false);
        installer.setDefaultPageVisible(QInstaller.ComponentSelection, false);
        installer.setDefaultPageVisible(QInstaller.StartMenuSelection, false);
        installer.setDefaultPageVisible(QInstaller.PerformInstallation, false);
        installer.setDefaultPageVisible(QInstaller.LicenseCheck, false);
        gui.clickButton(buttons.NextButton);

如果最终用户选择取消,我们显示默认安装程序页面,并在最后一个安装程序页面使用installer::setValue()函数显示另一条消息

    } else {
        installer.setValue("FinishedText",
            "<font color='green' size=3>The installer was not quit by JavaScript.</font>");
    }
}

生成示例安装程序

要创建示例安装程序,切换到命令行上示例源目录,并输入以下命令

  • 在Windows上
    ..\..\bin\binarycreator.exe -c config\config.xml -p packages installer.exe
  • 在Linux或macOS上
    ../../bin/binarycreator -c config/config.xml -p packages installer

这将在当前目录创建安装程序。

文件

©2021 契此提供的 Qt 公司 Ltd. 文档贡献为各自所有者的版权。所提供的文档根据自由软件基金会发布的版本 1.3 的GNU 自由文档许可协议许可使用。Qt 公司、Qt 及其相关标志为芬兰及/或全球其他地区的 Qt 公司 Ltd. 的商标。所有其他商标均为各自所有者的财产。