Настройка иконки приложения Qt Gui

Я хочу установить значок для моего приложения qt gui, и выполнил шаги, перечисленные ниже:

 1. create an ICO file bitmap That contains the icon image.
2. Store the ICO file in app's source code directory.
3. create a text file and added these lines "IDI_ICON1 ICON DISCARDABLE
4. myicon.ico" and saved it as "myicon.rc".
5. and added these lines in my .pro file "RC_FILE = MYICON.RC"

но это дает эту ошибку:

mingw32-сделать [1]: * Нет правила, чтобы сделать цель «../Test/myicon.rc»,
нужен для ‘debug / myicon_res.o’. Стоп. mingw32-make: *
[debug] Ошибка
2 02:15:41: процесс «C: \ TDM-GCC-32 \ bin \ mingw32-make.exe» завершен
с кодом 2. Ошибка при сборке / развертывании проекта Test (комплект:
Рабочий стол) При выполнении шага «Сделать»

-1

Решение

Ваша проблема, вероятно, в том, что вы включаете myicon.rc как обычный файл, и он указан в качестве исходного файла. Он не должен быть указан ни там, ни под заголовками, потому что он не проходит через обычный компилятор. Вы должны перечислить это как RC_FILE = myapp.rc,

http://doc.qt.io/qt-5/qmake-variable-reference.html#rc-file

Обратите внимание, что ICON в .pro используется только на Mac.

http://doc.qt.io/qt-5/qmake-variable-reference.html#icon

Я включил пример кода для того, как я обычно справляюсь с rc файл, файл версии и как он используется в main.cpp и в .pro файл.

Это должно работать в Qt Creator и Visual Studio.

Вот файлы, которые я использую, когда я делаю управление версиями и иконки в Windows:

myapp.rc

// http://stackoverflow.com/questions/2784697/setting-application-info-in-qt
#include <windows.h>
#include "version.h"
// if you needed to maintain two different icons for your app, you could
// switch here using a #ifdef and #else
#define MYICON "my_icon.ico"
IDI_ICON1               ICON    DISCARDABLE     MYICON

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             0,1,0,0
#define VER_FILEVERSION_STR         "0.1.0.0\0"
#define VER_PRODUCTVERSION          15,07,01,50
#define VER_PRODUCTVERSION_STR      "15.07.01.50"
#define VER_COMPANYNAME_STR         "MySoft"#define VER_FILEDESCRIPTION_STR     "Star Runner"
#define VER_INTERNALNAME_STR        "Star Runner"#define VER_LEGALCOPYRIGHT_STR      "Copyright © MySoft"#define VER_LEGALTRADEMARKS1_STR    "All Rights Reserved"#define VER_LEGALTRADEMARKS2_STR    VER_LEGALTRADEMARKS1_STR
#define VER_ORIGINALFILENAME_STR    "star_runner.exe"#define VER_PRODUCTNAME_STR         "Star Runner"
#define VER_COMPANYDOMAIN_STR       "mysoft.com"
#endif // VERSION_H

main.cpp

#include <QApplication>
#include "version.h"#include <QSettings>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
a.setApplicationName(VER_PRODUCTNAME_STR);
a.setOrganizationName(VER_COMPANYNAME_STR);
a.setOrganizationDomain(VER_COMPANYDOMAIN_STR);
a.setApplicationDisplayName(VER_PRODUCTNAME_STR);
QSettings::setDefaultFormat(QSettings::IniFormat);

// Create the widget or main window here

return a.exec();
}

star_runner.pro

# all sorts of other things like SOURCES and HEADERS and FORMS, etc.
# ...

win32 {
# DEFINES -= UNICODE
RC_FILE += myapp.rc
}

macx {
ICON = my_icon.icns
}

OTHER_FILES += \
my_icon.ico \
my_icon.icns \
myapp.rc

И, наконец, при создании иконок я обычно использую Gimp, делая их размером не менее 256×256, а затем экспортирую их с разными размерами, используя Phoca Save Icons. В других случаях я просто сделаю PNG, а затем использовать что-то из Вот.

Надеюсь, это поможет.

3

Другие решения

Mingw не знает, как обрабатывать файл .rc.

Увидеть: http://www.mingw.org/wiki/MS_resource_compiler

0

По вопросам рекламы [email protected]