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 display them. But most Windows installers check the version number and I can't find a Qt way of setting these fields other than manually maintaining a separate .RC file
Some way that lets you update this from an automated build would also be nice!
Setting the Application Icon on Windows This can be done using Microsoft Visual Studio: Select File >> New, and choose the Icon File. Note: You need not load the application into the Visual Studio IDE as you are using the icon editor only.
Usage: windeployqt [options] [files] Qt Deploy Tool 6.0. 0 The simplest way to use windeployqt is to add the bin directory of your Qt installation (e.g. <QT_DIR\bin>) to the PATH variable and then run: windeployqt <path-to-app-binary> If ICU, etc. are not in the bin directory, they need to be in the PATH variable.
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:
.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With