Arrow
ArrowҚаң. 20, 2017, 12:04 Т.Қ.

Иконка исполняемого файла

Иконки *.ico, исполняемый файл *.exe

Написал программу, только возник один вопрос:

Есть ли в Qt возможность назначить иконку для исполняемого файла программы?

Нашел несколько способов это сделать - они связаны с файлами ресурсов и файлом *.pro, но не работают.

В окне и на панели задач иконка отображается - установил через setWindowIcon.

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

15
Evgenii Legotckoi
  • Қаң. 20, 2017, 12:22 Т.Қ.

Ну вообще для Windows нужно прописать в pro файле следующее

win32: RC_ICONS = $$PWD/images/myappico.ico

И при этом обязательно расширение должно быть ico . Ну и добавить соответственно эту иконку в файл ресурсов. У меня в одном проекте так сделано и всё работает.

Может быть Вы просто не совсем верно путь указали к файлу с иконкой?

    Arrow
    • Қаң. 20, 2017, 3:06 Т.Қ.

    Такого способа я не встречал. Спасибо, доберусь до Windows попробую.

      Evgenii Legotckoi
      • Қаң. 20, 2017, 11:51 Т.Қ.

      Вообще я этот способ брал из официальной документации. И с другими не доводилось встречаться. Единственное, там под другие платформы сложнее делается, но я ими и не заморачивался, поскольку с Mac OS не работаю, а под Linux ничего такого не писал, чтобы сильно влезать в API X-сервера.

        Arrow
        • Қаң. 23, 2017, 1:33 Т.Қ.
        • Жауап шешім ретінде белгіленді.

        Проверил все работает, иконку к исполняемому файлу подключил через:

        win32: RC_ICONS = $$PWD/images/app.ico
        

        Если понадобится, дополнительную информацию в исполняемый файл можно добавить так:

        win32:{
            VERSION = 1.0.0
            QMAKE_TARGET_COMPANY = Название компании
            QMAKE_TARGET_PRODUCT = Название программы
            QMAKE_TARGET_DESCRIPTION = Описание программы
            QMAKE_TARGET_COPYRIGHT = Автор
        }
        
          Ruslan Polupan
          • Қаз. 12, 2017, 6:43 Т.Ж.

          Добавил в *.pro

          win32:RC_ICONS = C:/Develop/HotlineDesktop/resource/Icon/hotline.ico
          В фале ресурсов прописал.

          При сборке ругается
          C:\Develop\build-HotlineDesktop-Desktop_Qt_5_9_1_MinGW_32bit-Release\HotlineDesktop_resource.rc:2: ошибка: when writing output to : No such file or directory
          
          Причем на строку в скрине. :-)

          чет я задумался....

            Evgenii Legotckoi
            • Қаз. 12, 2017, 7:56 Т.Ж.

            мм.. Может, всё-таки закинуть иконку через относительный путь теневой сборки? То есть через $$PWD ?

              Ruslan Polupan
              • Қаз. 13, 2017, 7:05 Т.Ж.

              Такой вариант:

              message($$PWD)
              win32:RC_ICONS = $$PWD:/resource/Icon/hotline.ico
              При сборке выводит
              Project MESSAGE: C:/Develop/HotlineDesktop
              Но ошибка та же....
                Evgenii Legotckoi
                • Қаз. 13, 2017, 7:09 Т.Ж.

                Вместо этого

                win32:RC_ICONS = $$PWD:/resource/Icon/hotline.ico
                Нужно так
                win32:RC_ICONS = $$PWD/resource/Icon/hotline.ico
                Двоеточие здесь лишнее
                  Ruslan Polupan
                  • Қаз. 13, 2017, 7:30 Т.Ж.

                  Результат тот же.

                    Evgenii Legotckoi
                    • Қаз. 13, 2017, 7:42 Т.Ж.
                    • (өңделген)

                    А в pro файле есть подключение этого ресурсного файла через RESOURCES += ?

                    Хотя, что я говорю, должно быть, Вы же добавили иконку в ресурсный файл.
                    Такое ощущение, что как-то криво подключён в проект ресурсный файл ... (здесь должен быть недоумевающий смайлик) 
                      Ruslan Polupan
                      • Қаз. 28, 2017, 2:59 Т.Ж.

                      Создал новое приложение все работает :-)

                        Evgenii Legotckoi
                        • Қаз. 28, 2017, 6:08 Т.Ж.

                        Мда... вот такое поведение QMake меня порой и выбешивает, что он не в состоянии нормально подключить ресурсы иногда или ещё что-то. Но вся проблема в том, что нормальной поддержки CMake в Qt Creator нет, а в CLion нет нормальной поддержки функцинонала Qt в плане авторефакторинга...

                          IscanderChe
                          • Маусым 22, 2018, 4:22 Т.Қ.
                          Для винды так:
                          somefile.rc
                          =========
                          IDI_ICON1   ICON    "icon.ico"

                          someproject.pro
                          win32 {
                          RC_FILE += somefile.rc
                          OTHER_FILES += somefile.rc
                          }
                          А как для linux сделать то же самое?
                            Ruslan Polupan
                            • Маусым 23, 2018, 1:27 Т.Ж.

                            Взято отсюда. https://habr.com/company/istodo/blog/215079/

                            Linux

                            Согласно спецификации , Linux не требует преобразовывать исходники иконки в какие-либо сборки, нужно просто скопировать (при установке) файлы в поддиректории вида:
                            /usr/share/icons/hicolor/RxR/apps, где R — разрешение иконки
                            или
                            /usr/share/icons/hicolor/scalable/apps — если вы хотите установить векторное изображение в формате .svg
                            Однако это еще не все, каждая тема иконок имеет свой кэш, и если его не обновить — увидеть новую иконку не получится. Кэш автоматически обновляется при штатной установке пакетов, либо можно сделать это вручную, выполнив команду:
                            gtk-update-icon-cache /usr/share/icons/hicolor
                            Нужно сказать, что связывание конкретной иконки с приложением идет в файле /usr/share/applications/myapp.desktop , в котором необходимо заполнить соответствующее поле (название иконки). Создание и заполнение обязательных полей этого файла будет рассмотрено в одной из следующих статей, посвященной сборке и распространению дистрибутива программы.
                              IscanderChe
                              • Маусым 25, 2018, 1:38 Т.Қ.

                              Спасибо!

                                Пікірлер

                                Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
                                Кіріңіз немесе Тіркеліңіз
                                AD

                                C++ - Тест 004. Указатели, Массивы и Циклы

                                • Нәтиже:50ұпай,
                                • Бағалау ұпайлары-4
                                m
                                • molni99
                                • Қаз. 26, 2024, 1:37 Т.Ж.

                                C++ - Тест 004. Указатели, Массивы и Циклы

                                • Нәтиже:80ұпай,
                                • Бағалау ұпайлары4
                                m
                                • molni99
                                • Қаз. 26, 2024, 1:29 Т.Ж.

                                C++ - Тест 004. Указатели, Массивы и Циклы

                                • Нәтиже:20ұпай,
                                • Бағалау ұпайлары-10
                                Соңғы пікірлер
                                ИМ
                                Игорь МаксимовҚар. 22, 2024, 11:51 Т.Ж.
                                Django - Оқулық 017. Теңшелген Django кіру беті Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                                Evgenii Legotckoi
                                Evgenii LegotckoiҚаз. 31, 2024, 2:37 Т.Қ.
                                Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                                A
                                ALO1ZEҚаз. 19, 2024, 8:19 Т.Ж.
                                Qt Creator көмегімен fb3 файл оқу құралы Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                                ИМ
                                Игорь МаксимовҚаз. 5, 2024, 7:51 Т.Ж.
                                Django - Сабақ 064. Python Markdown кеңейтімін қалай жазуға болады Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                                d
                                dblas5Шілде 5, 2024, 11:02 Т.Ж.
                                QML - Сабақ 016. SQLite деректер қоры және онымен QML Qt-та жұмыс істеу Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                                Енді форумда талқылаңыз
                                m
                                moogoҚар. 22, 2024, 7:17 Т.Ж.
                                Mosquito Spray System Effective Mosquito Systems for Backyard | Eco-Friendly Misting Control Device & Repellent Spray - Moogo ; Upgrade your backyard with our mosquito-repellent device! Our misters conce…
                                Evgenii Legotckoi
                                Evgenii LegotckoiМаусым 24, 2024, 3:11 Т.Қ.
                                добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                                t
                                tonypeachey1Қар. 15, 2024, 6:04 Т.Ж.
                                google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                                NSProject
                                NSProjectМаусым 4, 2022, 3:49 Т.Ж.
                                Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

                                Бізді әлеуметтік желілерде бақылаңыз