Qt 5.5 和 Qt Installer Framework 2.0.1:徽标尽管存在于 config.xml 中但未显示

Qt 5.5 and Qt Installer Framework 2.0.1: Logo is not displayed despite being present in config.xml

我已经使用预编译的 Qt Installer Framework 二进制文件 2.0.1 版为我的应用程序编写了一个安装程序。 但是,安装程序 window 不会以任何可能的方式显示我的任何徽标。

有问题的徽标名为 "installerlogo.png",一个带有 alpha 通道的 64x64 图像,位于安装程序目录结构的顶部(与 config/ 和 packages/ 目录所在的目录相同。)

为了图标的目的我又做了一个logo,取名为"installericon.ico",就是上面那个的16x16版本,只是改名为“.ico”而已(是不是做法不对? )

我在 config.xml 文件中尝试了以下内容:

<InstallerApplicationIcon>installericon</InstallerApplicationIcon>
<InstallerWindowIcon>installerlogo</InstallerWindowIcon>
<Logo>installerlogo.png</Logo>
<Background>installerlogo.png</Background>

但是 none 产生任何视觉结果。

在互联网上对框架进行了更多研究后,我现在发现我犯了几个错误。

  • 首先,简单地将 .png 更改为 .ico 是行不通的——整个 正如我所发现的,.ico 格式的要点是能够 存储同一图像的多种分辨率,以防止它看起来 在文件资源管理器中放大时模糊。解决方案:http://www.icoconverter.com/ - 该网站允许从单个 png 创建一个全范围的 ico 文件。

  • 其次,ico 不在最顶层的目录中 - 它们应该放在与 config.xml 文件相同的目录中

  • 第三,不应在config.xml标签中为图标文件指定文件扩展名,例如"myicon.ico" - 这是在解析文件时根据需要完成的。编辑:但是请注意,在其他地方您 do 需要指定扩展名,例如使用 <Watermark> 标签等时。

  • 第四,需要将 <WizardStyle> 定义为 "Modern"、"Classic, "Mac" 或 "Aero"(没有引号)启用特定功能 - 我现在忘记了,但是如果 <WizardStyle> 是 "Classic",一些 xml 标志什么都不做。我已经将我的设置为 <WizardStyle>Modern</WizardStyle> 到目前为止一切正常。

  • 最后,一些标签只有与 installscrip.qs 文件一起使用才有意义。虽然这并没有特别妨碍我,但也有一点需要注意。

除了上面Maxim指出的优点外,还有一个很重要的地方。由于这个问题,过去 2 个小时我一直在伤脑筋。添加它,以便它对某人有帮助。

Windows 对 .exe 图标图像进行了某种缓存(基于 exe 名称和文件夹位置)

假设您第一次生成没有图像的安装程序 exe(可能您没有设置图像或配置中的图像设置不正确)。 现在第二次生成 exe 时,这次在配置中正确设置了图像,将 exe 的名称设置为相同的文件夹位置,exe 仍将具有旧的(默认)图像。

如果您将 exe 复制到不同的文件夹位置,该 exe 的图像将神奇地出现。 否则,您应该在第二次尝试中生成具有不同名称的 exe,以反映更改后的图像。