إعداد معلومات التطبيق في ملف QT قابل للتنفيذ على Windows
-
03-10-2019 - |
سؤال
أي شخص لديه نصائح حول تعيين معلومات التطبيق (أي انقر بزر الماوس الأيمن على .exe-> الخصائص) من QT؟
يمكنني إضافة سلاسل الإصدار التعسفي إلى ملف مورد QT (QRC) وعرضها. لكن معظم مثبّات Windows تحقق من رقم الإصدار ولا يمكنني العثور على طريقة QT لتعيين هذه الحقول بخلاف الحفاظ يدويًا على ملف .rc منفصل
بطريقة ما تتيح لك تحديث هذا من البناء الآلي سيكون أيضًا لطيفًا!
المحلول
إليك كيف أفعل ذلك ... أضف ملفًا يسمى Resources.rc لمشروعك مع المحتويات:
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
وملف يسمى version.h مع المحتويات:
#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
وأخيرًا إلى ملف .pro الخاص بك ، أضف: RC_FILE = resources.rc
. ستتجاهل منصات غير Windows القيمة حتى لا تحتاج إلى بادئة win32:
.
نصائح أخرى
حسنًا ، بعد عامين من سؤاله ... ولكن ربما يجد شخص ما مفيدًا ...
حاول استخدام متغيرات QMake التالية:
VERSION = 0.4.0.1
QMAKE_TARGET_COMPANY = company
QMAKE_TARGET_PRODUCT = product
QMAKE_TARGET_DESCRIPTION = description
QMAKE_TARGET_COPYRIGHT = copyright
مزيد من المعلومات هنا.
لا تنتمي إلى StackOverflow