Arrow
ArrowJan. 20, 2017, 12:04 p.m.

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

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

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

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

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

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

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

15
Evgenii Legotckoi
  • Jan. 20, 2017, 12:22 p.m.

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

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

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

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

    Arrow
    • Jan. 20, 2017, 3:06 p.m.

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

      Evgenii Legotckoi
      • Jan. 20, 2017, 11:51 p.m.

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

        Arrow
        • Jan. 23, 2017, 1:33 p.m.
        • The answer was marked as a solution.

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

        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
          • Oct. 12, 2017, 6:43 a.m.

          Добавил в *.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
            • Oct. 12, 2017, 7:56 a.m.

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

              Ruslan Polupan
              • Oct. 13, 2017, 7:05 a.m.

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

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

                Вместо этого

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

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

                    Evgenii Legotckoi
                    • Oct. 13, 2017, 7:42 a.m.
                    • (edited)

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

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

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

                        Evgenii Legotckoi
                        • Oct. 28, 2017, 6:08 a.m.

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

                          IscanderChe
                          • June 22, 2018, 4:22 p.m.
                          Для винды так:
                          somefile.rc
                          =========
                          IDI_ICON1   ICON    "icon.ico"

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

                            Взято отсюда. 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
                              • June 25, 2018, 1:38 p.m.

                              Спасибо!

                                Comments

                                Only authorized users can post comments.
                                Please, Log in or Sign up
                                AD

                                C ++ - Test 004. Pointers, Arrays and Loops

                                • Result:50points,
                                • Rating points-4
                                m

                                C ++ - Test 004. Pointers, Arrays and Loops

                                • Result:80points,
                                • Rating points4
                                m

                                C ++ - Test 004. Pointers, Arrays and Loops

                                • Result:20points,
                                • Rating points-10
                                Last comments
                                ИМ
                                Игорь МаксимовNov. 22, 2024, 10:51 p.m.
                                Django - Tutorial 017. Customize the login page to Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                                Evgenii Legotckoi
                                Evgenii LegotckoiNov. 1, 2024, 12:37 a.m.
                                Django - Lesson 064. How to write a Python Markdown extension Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                                A
                                ALO1ZEOct. 19, 2024, 6:19 p.m.
                                Fb3 file reader on Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                                ИМ
                                Игорь МаксимовOct. 5, 2024, 5:51 p.m.
                                Django - Lesson 064. How to write a Python Markdown extension Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                                d
                                dblas5July 5, 2024, 9:02 p.m.
                                QML - Lesson 016. SQLite database and the working with it in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                                Now discuss on the forum
                                m
                                moogoNov. 22, 2024, 6:17 p.m.
                                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 LegotckoiJune 25, 2024, 1:11 a.m.
                                добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                                t
                                tonypeachey1Nov. 15, 2024, 5:04 p.m.
                                google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                                NSProject
                                NSProjectJune 4, 2022, 1:49 p.m.
                                Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…

                                Follow us in social networks