Qt Installer Framework翻译(5-4)

摘要:
通过控件在xml文件的ControlScript元素中指定的控制脚本可以与整个安装程序相关联。添加操作您可以在安装期间使用组件脚本执行QtInstallerFramework操作。使用QInstaller::Component::addOperation或QInstaller::Component::addElevatedOperation函数添加操作。安装程序会自动加载xml文件中UserInterfaces元素列出的所有用户界面文件。要插入单个子部件,请使用installer::addWizardPageItem方法。您需要向包中添加翻译。xml文件以激活组件翻译:deQm对脚本中的文本使用qsTr()函数。例如,如果脚本是installscript。qs,上下文将是installscript。
自定义安装程序

您可以使用脚本通过以下方式来自定义安装程序:

> 添加Qt Installer Framework操作,该操作由脚本提供,并由安装程序执行。
> 添加新页面,该页面由您在package.xml文件中指定,并将其放置在packages文件夹中。
> 修改现有页面,通过插入自定义用户界面元素来作为子部件。
> 添加语言变体。

您可以同时使用组件脚本控制脚本来自定义安装程序。通过在组件的package.xml文件的Script元素中指定组件脚本,可以将该脚本与特定的组件关联起来。当组件的元数据获取完毕时,将加载该脚本。有关组件脚本的更多信息,请参见组件脚本章节。

通过在安装程序的control.xml文件的ControlScript元素中指定控制脚本,可以将该脚本与整个安装程序关联起来。控制脚本可以是安装程序资源的一部分,也可以在命令行中被传递。它们可用于修改安装程序页面,该页面在加载组件之前向用户显示。另外,您可以使用它们来修改卸载程序中的页面。有关更多信息,请参见控制脚本章节。

有关可用于组件/控制脚本的全局JavaScript对象的更多信息,请参见脚本API章节。

添加操作

您可以在安装过程中使用组件脚本执行Qt Installer Framework操作。通常,操作通过移动,复制或修补方式来操纵文件。使用QInstaller::Component::addOperation或QInstaller::Component::addElevatedOperation函数来添加操作。有关更多信息,请参见向组件添加操作章节。

另外,您可以通过派生KDUpdater::UpdateOperation来重新实现方法函数,用于在安装程序中注册自定义安装操作。有关更多信息,请参见注册自定义操作章节。

有关可用操作的总结,请参见操作章节。

添加页面

一个组件可以包含一个或多个用户界面文件,这些文件由组件或控制脚本放置在安装程序中。安装程序自动加载package.xml文件中UserInterfaces元素列出的所有用户界面文件。

使用组件脚本添加页面

要向安装程序添加新页面,请使用installer::addWizardPage()方法,并指定新页面的位置。例如,以下代码在安装准备页面中添加了MyPage实例:

installer.addWizardPage(component,"MyPage",QInstaller.ReadyForInstallation);

您可以使用组件脚本来访问已加载的窗口子部件,方法是通过该部件的类名来调用component::userInterface()方法,如以下代码片段所示:

component.userInterface( "MyPage" ).checkbox.checked = true;

您还可以为添加的页面提供回调函数。要访问它,请使用在UI文件中设置的对象名称(例如,“ MyPage”)。然后创建Dynamic${ObjectName}Callback函数(例如,DynamicMyPageCallback):

Component.prototype.DynamicMyPageCallback = function()
{
    var page = gui.pageWidgetByObjectName("DynamicMyPage");
    page.myButton.click,
    page.myWidget.subWidget.setText("hello")
}

您可以使用在UI文件中设置的对象名称来访问窗口子部件。例如,上面代码中的myButton和myWidget就是子部件对象名称。

添加子部件

您可以使用组件或控制脚本,来将自定义用户界面元素,作为单个窗口子部件(例如复选框)插入到安装程序中。

要插入单个子部件,请使用installer::addWizardPageItem方法。例如,以下代码片段通过脚本,将MyWidget的实例添加到组件选择页面:

installer.addWizardPageItem(component,"MyWidget",QInstaller.ComponentSelection);

与安装程序进行功能性交互

例如,您可以使用控制脚本在测试中自动执行安装程序功能函数。以下代码段说明了如何在目标文件夹选择页面上自动点击“下一步”按钮:

Controller.prototype.TargetDirectoryPageCallback = function()
{
    gui.clickButton(buttons.NextButton);
}

翻译页面

安装程序使用Qt翻译系统,来将用户可读的输出翻译成多种语言。要提供组件脚本和用户界面中包含的字符串的本地化版本,请创建QTranslator文件,安装系统会在加载组件时一起加载该文件。安装程序将加载与当前系统区域匹配的翻译文件。例如,如果系统区域设置为德语,则将加载de.qm文件。另外,如果存在本地化的license_de.txt,那么会显示该文件,而不是默认的license.txt。

需要将翻译添加到package.xml文件中,才能激活组件的翻译:

<Translations>
    <Translation>de.qm</Translation>
</Translations>

将qsTr()函数用于脚本内的文字文本。此外,您可以将Component.prototype.retranslateUi方法添加到脚本中。 当安装程序的语言更改时,翻译文件被加载后,将调用该方法。

用于翻译的上下文,是使用qsTr时脚本文件的基础名,或翻译用户界面时UI文件的类名称。例如,如果脚本为installscript.qs,则上下文将为installscript。

注意:翻译系统还可以用于自定义UI。例如,通过自定义英语版本,使用一个en.ts文件,来替换安装程序中的任意文本。


原创造福大家,共享改变世界

献出一片爱心,温暖作者心灵

Qt Installer Framework翻译(5-4)第1张

免责声明:文章转载自《Qt Installer Framework翻译(5-4)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇BMFont中文字体图集制作的方法~(for unity ngui)UNIX网络编程——关于socket阻塞与非阻塞情况下的recv、send、read、write返回值下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MFC【exe】工程中的文件大致信息(翻译的)

在工程文件夹中有个readme文件,下面是翻译过来的。 ======================================================================== MICROSOFT FOUNDATION CLASS LIBRARY : Down1====================================...

神经机器翻译(NMT)相关资料整理

作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明。谢谢! 1 简介 自2013年提出了神经机器翻译系统之后,神经机器翻译系统取得了很大的进展。最近几年相关的论文,开源系统也是层出不穷。本文主要梳理了神经机器翻译入门、进阶所需要阅读的资料和论文,并提供了相关链接以及简单的介绍,以及总...

必应词典使用体验及改进建议

必应词典使用体验及改进建议 一、发现的BUG 1、使用PC客户端(版本号3.5.0),因为是第一次使用必应词典,之前一直习惯用有道,有自己的生词本,以xml格式保存,这次希望通过必应词典把有道词典旧有的生词本中的内容同步到必应词典当中来,结果发生了如下的事情: 选择导入 点打开出现弹窗: 我觉得很纳闷:都是xml格式的文件,为什么有道能正确打开并解析...

Gradle 翻译 build dependencies 依赖 [MD]

博文地址 我的GitHub 我的博客 我的微信 我的邮箱 baiqiantao baiqiantao bqt20094 baiqiantao@sina.com 添加构建依赖项 Add build dependencies Android Studio中的Gradle构建系统可以轻松地将外部二进制文件或其他库模块作为依赖项包含在构建中。依赖项可...

解读 JavaScript 之引擎、运行时和堆栈调用

https://www.oschina.net/translate/how-does-javascript-actually-work-part-1 随着 JavaScript 变得越来越流行,很多团队在他们的堆栈中实现诸多层级的支持 - 前端、后端、混合应用程序、嵌入式设备等等。 本文是该系列文章的第一篇,旨在深入研究 JavaScript 及其实际...

python爬虫学习---爬取微软必应翻译(中英互译)

  前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者:OSinooO        本人属于python新手,刚学习的 python爬虫基础迫不及待地想试一试,看了论坛里大佬们写的在线翻译爬虫程序,想着自己把它写出来,以下是我爬微软翻译的过程,作为笔记记录下来: 1.获取信...