إعداد معلومات التطبيق في ملف QT قابل للتنفيذ على Windows

StackOverflow https://stackoverflow.com/questions/2784697

سؤال

أي شخص لديه نصائح حول تعيين معلومات التطبيق (أي انقر بزر الماوس الأيمن على .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

مزيد من المعلومات هنا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top