当前位置:   article > 正文

QT安装程序制作_qt component.prototype.dynamicpageentered

qt component.prototype.dynamicpageentered
1 安装Qt installerframework

    从QT官网的http://download.qt.io/official_releases/qt-installer-framework/下载qt installer framework安装程序进行安装。

2 配置安装文件

1、建立安装程序制作目录,例如:d:\myapp_setup。

2、把Qt installer framework示例examples\tutorial目录下的config和packages两个目录拷贝到myapp_setup目录内。把应用程序的可执行文件和资源文件拷贝到myapp_setup\packages\com.vendor.product\data目录内。

3、修改配置文件config.xml

修改myapp_setup\setup\config目录内的config.xml文件。原文件为:

  1. <?xml version="1.0"encoding="UTF-8"?>
  2. <Installer>
  3. <Name>Your application</Name>
  4. <Version>1.0.0</Version>
  5. <Title>Your application Installer</Title>
  6. <Publisher>Your vendor</Publisher>
  7. <StartMenuDir>Super App</StartMenuDir>
  8. <TargetDir>@HomeDir@/InstallationDirectory</TargetDir>
  9. </Installer>

各配置项描述如下:

  1. <?xml version="1.0"encoding="UTF-8"?>
  2. <Installer>
  3. <Name>你的应用程序名称</Name>
  4. <Version>程序版本</Version>
  5. <Title>安装向导名称</Title>
  6. <Publisher>版权所有方名称</Publisher>
  7. <StartMenuDir>开始菜单的名称</StartMenuDir>
  8. <TargetDir>缺省的指定安装目录</TargetDir>
  9. </Installer>

修改后内容如下:

  1. <?xml version="1.0"encoding="UTF-8"?>
  2. <Installer>
  3. <Name>hvplayer</Name>
  4. <Version>1.18.01.15</Version>
  5. <Title>hvplayer安装</Title>
  6. <Publisher>hujianfeng</Publisher>
  7. <StartMenuDir>hvplayer</StartMenuDir>
  8. <TargetDir>@rootDir@/Program Files(x86)/hvplayer</TargetDir>
  9. </Installer>

4、修改包信息文件packages.xml

修改myapp_setup\packages\com.vendor.product\meta\packages.xml文件。原文件如下:

  1. <?xml version="1.0"encoding="UTF-8"?>
  2. <Package>
  3. <DisplayName>The root component</DisplayName>
  4. <Description>Install this example.</Description>
  5. <Version>0.1.0-1</Version>
  6. <ReleaseDate>2010-09-21</ReleaseDate>
  7. <Licenses>
  8. <License name="Beer Public License Agreement"file="license.txt" />
  9. </Licenses>
  10. <Default>script</Default>
  11. <Script>installscript.qs</Script>
  12. <UserInterfaces>
  13. <UserInterface>page.ui</UserInterface>
  14. </UserInterfaces>
  15. </Package>

各配置项描述如下:

  1. <?xml version="1.0"encoding="UTF-8"?>
  2. <Package>
  3. <DisplayName>安装组件名称</DisplayName>
  4. <Description>安装组件描述.</Description>
  5. <Version>版本</Version>
  6. <ReleaseDate>建立日期</ReleaseDate>
  7. <Licenses>
  8. <License name="许可协议文件" file="license.txt" />
  9. </Licenses>
  10. <Default>安装脚本文件</Default>
  11. <Script>installscript.qs</Script>
  12. <UserInterfaces>
  13. <UserInterface>安装界面定义文件page.ui</UserInterface>
  14. </UserInterfaces>
  15. </Package>

修改后内容如下:

  1. <?xml version="1.0"encoding="UTF-8"?>
  2. <Package>
  3. <DisplayName>hvplayer</DisplayName>
  4. <Description>hvplayer视频播放器</Description>
  5. <Version>1.18.01.15</Version>
  6. <ReleaseDate>2018-01-15</ReleaseDate>
  7. <Licenses>
  8. <License name="General Public License v3"file="license.txt" />
  9. </Licenses>
  10. <Default>script</Default>
  11. <Script>installscript.qs</Script>
  12. </Package>

5、修改安装脚本

修改myapp_setup\packages\com.vendor.product\meta目录下的installscript.qs,原文件如下:

  1. function Component()
  2. {
  3. //constructor
  4. component.loaded.connect(this, Component.prototype.loaded);
  5. if(!installer.addWizardPage(component, "Page",QInstaller.TargetDirectory))
  6. console.log("Could not add the dynamic page.");
  7. }
  8. Component.prototype.isDefault = function()
  9. {
  10. // selectthe component by default
  11. returntrue;
  12. }
  13. Component.prototype.createOperations = function()
  14. {
  15. try {
  16. //call the base create operations function
  17. component.createOperations();
  18. } catch(e) {
  19. console.log(e);
  20. }
  21. }
  22. Component.prototype.loaded = function ()
  23. {
  24. var page= gui.pageByObjectName("DynamicPage");
  25. if (page!= null) {
  26. console.log("Connecting the dynamic page entered signal.");
  27. page.entered.connect(Component.prototype.dynamicPageEntered);
  28. }
  29. }
  30. Component.prototype.dynamicPageEntered = function()
  31. {
  32. varpageWidget = gui.pageWidgetByObjectName("DynamicPage");
  33. if(pageWidget != null) {
  34. console.log("Setting the widgets label text.")
  35. pageWidget.m_pageLabel.text = "This is a dynamically createdpage.";
  36. }
  37. }


这里只简单修改Component.prototype.createOperations= function()函数,修改后内容如下:

  1. Component.prototype.createOperations = function()
  2. {
  3. try {
  4. //call the base create operations function
  5. component.createOperations();
  6. if(systemInfo.productType === "windows") {
  7. component.addOperation("CreateShortcut","@TargetDir@/hvplayer.exe", "@StartMenuDir@/hvplayer.lnk");
  8. component.addOperation("CreateShortcut","@TargetDir@/hvplayer.exe","@HomeDir@/Desktop/hvplayer.lnk");
  9. component.addOperation("CreateShortcut","@TargetDir@/maintenancetool.exe", "@StartMenuDir@/更新或卸载.lnk");
  10. }
  11. } catch(e) {
  12. console.log(e);
  13. }
  14. }

3 拷贝包安装依赖文件

在qt开始菜单下打开相应环境的命令行,执行:

windeployqt.exe D:\myapp_setup\packages\com.vendor.product\data

Windeployqt工具将把所有依赖文件拷贝到可执行文件所在的目录。

4 生成安装包

1、把Qt installer framework安装目录的bin目录加入系统的path环境变量。

2、打开命令行终端,进入myapp_setup目录,运行binarycreator.exe命令。

binarycreator.exe -c config\config.xml -p packagessetup.exe

Binarycreator工具将在myapp_setup目录内生成setup.exe安装文件。

下面是我生成的一个视频播放器示例:


 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/170688?site
推荐阅读
相关标签
  

闽ICP备14008679号