Qt Installer Framework退出安装程序示例

Quit Installer Example

退出安装程序示例

Using a component script to quit an installer.

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

Quit Installer illustrates how to use the Component() function to display a message box to end users for quitting the installation if some requirements for the installation are not met.

Quit Installer演示了如何使用Component()函数向最终用户显示一个消息框,以便在不满足某些安装要求的情况下退出安装。

Configuring the Example Installer
配置示例安装程序

The installer configuration file, config.xml, in the config directory specifies the text and default values used in the installer:

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

  • The <Name> element sets the application name and adds it to the page name and introduction text.
  • <Name>元素设置应用程序名称并将其添加到页面名称和介绍文本中。
  • The <Version> element sets the application version number.
  • <Version>元素设置应用程序版本号。
  • The <Title> element sets the installer name and displays it on the title bar.
  • <Title>元素设置安装程序名称并将其显示在标题栏上。
  • The <Publisher> element sets the publisher of the software (as shown in the Windows Control Panel, for example).
  • <Publisher>元素设置软件的发布者(例如,如Windows控制面板所示)。
  • The <StartMenuDir> element sets the name of the default program group for the product in the Windows Start menu.
  • <StartMenuDir>元素在Windows“开始”菜单中设置产品的默认程序组的名称。
  • The <TargetDir> element sets the default target directory location to be within the IfwExamples directory in the home directory of the current user (because it uses the pre-existing variable , @HomeDir@, as part of the value). For more information, see Predefined Variables.
  • ​<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>
Creating the Example Package Information File
创建示例包信息文件

The installer package information file, package.xml, in the meta directory specifies the components that are available for installation:

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

  • The <DisplayName> element sets the human-readable name of the component.
  • <DisplayName>元素设置组件的人类可读名称。
  • The <Description> element sets the human-readable description of the component.
  • <Description>元素设置组件的人类可读描述。
  • The <Version> element sets the version number of the component.
  • <Version>元素设置组件的版本号。
  • The <ReleaseDate> element sets the date of release for this component version.
  • <ReleaseDate>元素设置此组件版本的发布日期。
  • The <Default> element is set to true to preselect the component in the installer.
  • 将<Default>元素设置为true,以在安装程序中预选组件。
  • The <Script> element specifies the file name of the JavaScript file that is loaded to perform operations.
  • <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>
Quitting the Installation
退出安装

In installscript.js, we use the Component() function to display a message box for quitting the installer to end users:

在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);

If end users select OK, we use the installer::setValue() function to display a message and the installer.setDefaultPageVisible() function to hide the subsequent installer pages:

如果最终用户选择“确定”,我们将使用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);

If end users select Cancel, we display the default installer pages and use the installer::setValue() function to display another message on the last installer page:

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

    } else {
        installer.setValue("FinishedText",
            "<font color='green' size=3>The installer was not quit by JavaScript.</font>");
    }
}
Generating the Example Installer
生成示例安装程序

To create the example installer, switch to the example source directory on the command line and enter the following command:

要创建示例安装程序,请在命令行上切换到示例源代码目录,然后输入以下命令:

  • On Windows:
    ..\..\bin\binarycreator.exe -c config\config.xml -p packages installer.exe
    
  • On Linux or macOS:
    ../../bin/binarycreator -c config/config.xml -p packages installer
    

This creates the installer to the current directory.

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

Files:

© 2021 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. The Qt Company, Qt and their respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值