Qt Creator部署到Windows设置图标

Qt Creator部署到Windows设置图标,qt,qt5,qt-designer,Qt,Qt5,Qt Designer,我想使用Qt安装程序框架将应用程序部署到windows。我在设置任务栏中的图标时遇到一些问题。 我正在使用 Qt Creator版本4.7.2 克马克 桌面Qt 5.11.2 MinGW 32位 如果我在Qt Creator中运行应用程序,则该应用程序会在任务栏中显示一个图标 要将其部署到Windows,请执行以下步骤: 将应用程序构建为发行版 将创建的.exe复制到安装程序框架的数据文件夹中 运行以下命令将所有内容链接在一起: windeployqt.exe--无翻译--无快速导入E:\p

我想使用Qt安装程序框架将应用程序部署到windows。我在设置任务栏中的图标时遇到一些问题。 我正在使用

  • Qt Creator版本4.7.2
  • 克马克
  • 桌面Qt 5.11.2 MinGW 32位
如果我在Qt Creator中运行应用程序,则该应用程序会在任务栏中显示一个图标

要将其部署到Windows,请执行以下步骤:

  • 将应用程序构建为发行版
  • 将创建的.exe复制到安装程序框架的数据文件夹中
  • 运行以下命令将所有内容链接在一起:

    windeployqt.exe--无翻译--无快速导入E:\path\to\app.exe

  • 运行以下命令以创建安装程序:

    D:\Qt\InstallerFramework\bin\binarycreator.exe--仅脱机-c config/config.xml-p packages app\u安装程序

  • 之后,我得到setupt.exe,我可以在另一台电脑上成功安装它。 如果我现在启动应用程序,应用程序的图标将丢失,我只能从windows获得此标准图标:

    现在我要说的是:

    我有一个.qrc文件,其中包含以下条目:

    <RCC>
        <qresource prefix="/">
            <file>icon.ico</file>
        </qresource>
    </RCC>
    
    在我添加的.pro文件中

    RC_FILE = resources.rc
    RESOURCES = qresources.qrc
    
    我将带有Qt Designer的图标指定为主窗口的图标。 将以下行放入MainWindow的构造函数中:

    setWindowIcon(QIcon("://icon.ico"));
    
    运行windeployqt后,我还检查了文件夹imageformats(我指的是qico.dll)中是否有必要的dll

    尽管如此,我在任务栏中还是没有任何图标(在“开始”菜单中也没有图标)。.exe具有正确的图标

    我搜索了很多,这些都是大家建议的步骤,所以我不知道为什么它不起作用

    如果在使用windeployqt创建.exe后启动它,则该应用程序的任务栏中会有一个图标

    使用创建的安装程序安装后,图标丢失。(qico.dll也存在于安装文件夹中)

    所以我在创建设置时遗漏了什么? 也许你们有什么想法


    谢谢大家!

    如上所述,我也有同样的问题。需要特别注意的是,在用于创建安装程序的文件夹中运行应用程序时,图标显示,在安装并从安装文件夹运行后,图标不正确(windows默认设置)

    为了实现这一点,我相信安装程序正在为该特定目录设置一个注册表项,使其具有默认的win图标,因为将.exe移动到其他目录可以解决此问题

    查看安装日志,发现了一条线索,其中提到了meta文件夹中的%system32%(我从Qt网站上获取了一个示例installscript.qs)上的图标


    首先,删除此脚本中提到的所有图标。这不会修复它,损坏似乎已经完成,因为已经为该文件夹路径创建了注册表项。最后一个修复方法是更改安装位置,最后图标现在显示出来。这让我花了好几个小时才弄明白

    能否确认拼写正确(Icon.ico或Icon.ico)和setWindowIcon(QIcon)(:/Icon.ico”);只有一个/而不是/。拼写错误。换了。非常感谢。双破折号也应该是正确的,因为qresourceIs中的前缀是真正编译的资源吗?为此,rc.exe需要位于mingw编译器所在的二进制文件夹中。有Qt设置,其中rc.exe缺失。如果您在VisualStudio中以文件形式打开exe(在那里打开它应该会显示完整的资源信息),您能看到图像吗?今天晚些时候我将对此进行检查。奇怪的是:如果我打开用windeployqt创建的独立应用程序,图标会显示在任务栏上。创建安装程序(使用qt安装程序框架)并使用安装程序安装后,该文件丢失。@Jens I将两个.exe(安装程序中的一个和运行windeployqt后的一个)区分开来,它们完全相同。此外,我再次检查了所有DLL。它们在两个文件夹中也是相同的。
    setWindowIcon(QIcon("://icon.ico"));