Qt之添加Windows资源文件(.rc文件)
来源:互联网 发布:jquery json转url参数 编辑:程序博客网 时间:2024/06/05 16:43
简述
在Windows下使用Qt时,通常会用到Windows的资源文件 - 为exe设置信息,其中包括:文件说明、产品名称、产品版本、版权等信息。。。
由于是Windows平台相关的东西,Qt助手中对于rc文件几乎没有任何介绍(在Setting the Application Icon一文中简单提到)。
- 简述
- 资源信息
- 效果
- 实现
- 图标
- 参数
- 示例
- VERSIONINFO
- 格式化VERSIONINFO
- 参数
- 更多参考
资源信息
效果
实现
首先,我们添加一个名为version.h的头文件,包含资源信息。
#ifndef VERSION_H#define VERSION_H#define PRODUCT_ICON "myapp.ico" // 图标#define FILE_VERSION 4,0,2,666 // 文件版本#define FILE_VERSION_STR "4.0.2.666"#define PRODUCT_VERSION 4,0,2,666 // 产品版本#define PRODUCT_VERSION_STR "4.0.2.666"#define COMPANY_NAME "Digia"#define INTERNAL_NAME "MyApp.exe"#define FILE_DESCRIPTION "Qt Creator based on Qt 5.7.0 (MSVC 2013, 32 bit)" // 文件说明#define LEGAL_COPYRIGHT "Copyright 2008-2016 The Qt Company Ltd. All rights reserved." // 版权#define ORIGINAL_FILE_NAME "MyApp.exe" // 原始文件名#define PRODUCT_NAME "Qt Creator" // 产品名称#define ORGANIZATION_DOMAIN "https://www.qt.io/" // 域名#endif // VERSION_H
然后,添加资源文件并进行设置。。。例如:myapp.rc
#include "winres.h"#include "version.h"// 图标IDI_ICON1 ICON PRODUCT_ICON// 版本信息VS_VERSION_INFO VERSIONINFO FILEVERSION FILE_VERSION PRODUCTVERSION PRODUCT_VERSION FILEFLAGSMASK 0x3fL#ifdef _DEBUG FILEFLAGS 0x1L#else FILEFLAGS 0x0L#endif FILEOS 0x40004L FILETYPE 0x1L FILESUBTYPE 0x0LBEGIN BLOCK "StringFileInfo" BEGIN BLOCK "080404b0" BEGIN VALUE "CompanyName", COMPANY_NAME VALUE "FileDescription", FILE_DESCRIPTION VALUE "FileVersion", FILE_VERSION_STR VALUE "InternalName", INTERNAL_NAME VALUE "LegalCopyright", LEGAL_COPYRIGHT VALUE "OriginalFilename", ORIGINAL_FILE_NAME VALUE "ProductName", PRODUCT_NAME VALUE "ProductVersion", PRODUCT_VERSION_STR END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x804, 1200 ENDEND
最后,在.pro文件中,添加:
RC_FILE += myapp.rc
图标
参考MSDN:ICON resource
为指定应用程序定义图标:
nameID ICON filename
参数
nameID
唯一名称或一个16位无符号整数值,识别资源。filename
包含该资源的文件名称。该名称必须是有效的文件名;如果文件不在当前工作目录,那么必须使用完整路径。路径应该是带引号的字符串。
示例
下面示例,定义了两个资源图标:
desk1 ICON "desk.ico"11 ICON "custom.ico"
可参考:Using Icons
VERSIONINFO
见MSDN:VERSIONINFO resource 和 VS_FIXEDFILEINFO structure
定义一个版本信息资源。该资源包含有关文件的版本号、原始文件名等信息。该资源用于与Version Information一起使用。
格式化VERSIONINFO
有两种方式格式化VERSIONINFO:
versionID VERSIONINFO fixed-info { block-statement . . . }
或者
versionID VERSIONINFO fixed-infoBEGINblock-statement. . .END
参数
versionID
版本信息资源标识符。此值必须为1。fixed-info
版本信息,如文件版本和操作系统。此参数包括以下语句:
block-statement
指定一个或多个版本信息块。块包含字符串信息或可变信息。欲了解更多信息,请参考:StringFileInfo BLOCK 或 VarFileInfo BLOCK
对应的结构体:
typedef struct tagVS_FIXEDFILEINFO { DWORD dwSignature; DWORD dwStrucVersion; DWORD dwFileVersionMS; DWORD dwFileVersionLS; DWORD dwProductVersionMS; DWORD dwProductVersionLS; DWORD dwFileFlagsMask; DWORD dwFileFlags; DWORD dwFileOS; DWORD dwFileType; DWORD dwFileSubtype; DWORD dwFileDateMS; DWORD dwFileDateLS;} VS_FIXEDFILEINFO;
更多参考
- Qt之生成Window资源文件(.rc 文件)
- Qt之添加Windows资源文件(.rc文件)
- Qt之添加Windows资源文件(.rc文件)
- Windows 资源文件(.rc文件)--Qt程序添加图标
- Qt之生成Window资源文件(.rc 文件)
- qt之添加资源文件
- QT之添加资源文件
- Qt添加系统的资源文件(Window系统的RC文件等)
- QT 添加资源文件
- Qt 添加资源文件
- QT 添加资源文件
- Windows 资源文件(.rc文件)小记
- .rc Windows资源文件定义和使用
- VS2010+QT 添加资源文件(.qrc)
- qt中添加资源文件
- QT-如何添加资源文件
- Qt自动添加资源文件
- Qt程序版本号之rc文件
- rc资源文件
- Spark RDD API详解(一) Map和Reduce
- oracle 12c:新特性-WITH语句的改善
- Objective-C动画二:Layer动画
- C#之自定义Vector3
- 标准C++中的string类的用法总结
- Qt之添加Windows资源文件(.rc文件)
- css--活动问题
- namenode不存在
- oracle 12c:新特性-扩展数据类型
- CentOS Linux下用Nginx和Naxsi搭建Web应用防火墙
- php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
- ArcGIS教程:数据框格网快速浏览
- java算法——选择排序
- Snort的工作原理