Setting application info in a Qt executable file on Windows

后端 未结 2 1193
执念已碎
执念已碎 2020-11-27 02:36

Anyone have an tips on setting the application info (ie. right click on .exe->properties) from Qt?

I can add arbitrary version strings to Qt resource file (qrc) and

相关标签:
2条回答
  • 2020-11-27 03:10

    Okay, two years after being asked... but maybe somebody will find it useful...

    Try to use the following qmake variables:

    VERSION = 0.4.0.1
    QMAKE_TARGET_COMPANY = company
    QMAKE_TARGET_PRODUCT = product
    QMAKE_TARGET_DESCRIPTION = description
    QMAKE_TARGET_COPYRIGHT = copyright
    

    More info here.

    0 讨论(0)
  • 2020-11-27 03:17

    Here's how I do it... add a file called resources.rc to your project with the contents:

    IDI_ICON1   ICON    DISCARDABLE "res/app.ico"
    
    #include <windows.h>
    #include "version.h"
    
    VS_VERSION_INFO VERSIONINFO
    FILEVERSION     VER_FILEVERSION
    PRODUCTVERSION  VER_PRODUCTVERSION
    BEGIN
        BLOCK "StringFileInfo"
        BEGIN
            BLOCK "040904E4"
            BEGIN
                VALUE "CompanyName",        VER_COMPANYNAME_STR
                VALUE "FileDescription",    VER_FILEDESCRIPTION_STR
                VALUE "FileVersion",        VER_FILEVERSION_STR
                VALUE "InternalName",       VER_INTERNALNAME_STR
                VALUE "LegalCopyright",     VER_LEGALCOPYRIGHT_STR
                VALUE "LegalTrademarks1",   VER_LEGALTRADEMARKS1_STR
                VALUE "LegalTrademarks2",   VER_LEGALTRADEMARKS2_STR
                VALUE "OriginalFilename",   VER_ORIGINALFILENAME_STR
                VALUE "ProductName",        VER_PRODUCTNAME_STR
                VALUE "ProductVersion",     VER_PRODUCTVERSION_STR
            END
        END
    
        BLOCK "VarFileInfo"
        BEGIN
            VALUE "Translation", 0x409, 1252
        END
    END
    

    and a file called version.h with the contents:

    #ifndef VERSION_H
    #define VERSION_H
    
    #define VER_FILEVERSION             1,0,0,0
    #define VER_FILEVERSION_STR         "1.0.0.0\0"
    
    #define VER_PRODUCTVERSION          1,0,0,0
    #define VER_PRODUCTVERSION_STR      "1.0\0"
    
    #define VER_COMPANYNAME_STR         "Your Organization"
    #define VER_FILEDESCRIPTION_STR     "CoolApplication"
    #define VER_INTERNALNAME_STR        "CoolApplication"
    #define VER_LEGALCOPYRIGHT_STR      "Copyright © 2010 Your Organization"
    #define VER_LEGALTRADEMARKS1_STR    "All Rights Reserved"
    #define VER_LEGALTRADEMARKS2_STR    VER_LEGALTRADEMARKS1_STR
    #define VER_ORIGINALFILENAME_STR    "coolapplication.exe"
    #define VER_PRODUCTNAME_STR         "CoolApplication"
    
    #define VER_COMPANYDOMAIN_STR       "example.org"
    
    #endif // VERSION_H
    

    and lastly to your .pro file, add: RC_FILE = resources.rc. Non-Windows platforms will ignore the value so you needn't prefix it with win32:.

    0 讨论(0)
提交回复
热议问题