Реклама
  • 20 января 2017 г. 17:04

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

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

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

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

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

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

  • #
  • 20 января 2017 г. 17:22

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

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

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

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

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

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

  • EVILEG
  • #
  • Ответ был помечен как решение
  • 23 января 2017 г. 18: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 = Автор
}
  • #
  • 12 октября 2017 г. 10: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
Причем на строку в скрине. :-)

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

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

  • #
  • 13 октября 2017 г. 11:05

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

message($$PWD)
win32:RC_ICONS = $$PWD:/resource/Icon/hotline.ico
При сборке выводит
Project MESSAGE: C:/Develop/HotlineDesktop
Но ошибка та же....
  • #
  • 13 октября 2017 г. 11:09

Вместо этого

win32:RC_ICONS = $$PWD:/resource/Icon/hotline.ico
Нужно так
win32:RC_ICONS = $$PWD/resource/Icon/hotline.ico
Двоеточие здесь лишнее
  • #
  • 13 октября 2017 г. 11:30

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

  • #
  • отредактировано 13 октября 2017 г. 11:42
  • 13 октября 2017 г. 11:42

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

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

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

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

Реклама

Ответы

Только авторизованные пользователи могут отвечать на форуме.
Пожалуйста, Авторизуйтесь или Зарегистрируйтесь

Qt - Тест 001. Сигналы и слоты

  • Результат 0 баллов
  • Очки рейтинга -10
  • boa
  • 10 декабря 2017 г. 3:04

Qt - Тест 001. Сигналы и слоты

  • Результат 84 баллов
  • Очки рейтинга 4
  • Shalfy
  • 8 декабря 2017 г. 14:05

Qt - Тест 001. Сигналы и слоты

  • Результат 100 баллов
  • Очки рейтинга 10
Последние комментарии
  • EVILEG
  • 7 декабря 2017 г. 9:47

Django - Урок 011. Добавление комментариев на сайт с Django

Визуальный пример чего? комментариев? При ответе на конкретный комментарий рядом с ником отвечающего будет стрелочка и указание ник другого пользователя. Который будет ссылкой на коммента...

  • Bernar
  • 7 декабря 2017 г. 9:24

Django - Урок 011. Добавление комментариев на сайт с Django

есть визуальный пример ?

  • EVILEG
  • 6 декабря 2017 г. 11:30

Django - Урок 011. Добавление комментариев на сайт с Django

Да, так будет даже лучше, я на сайте уже обновил до такого вида код Вот это уже не нужно if request.method == 'POST': Поскольку Вы и так используете метод post, то есть эта про...

  • Bernar
  • 6 декабря 2017 г. 11:19

Django - Урок 011. Добавление комментариев на сайт с Django

сделал немного по другому class EArticleView(View): template_name = 'knowledge/article.html' comment_form = CommentForm def get(self, request, *args, **kwargs): ...

Сейчас обсуждают на форуме

Как значение текущего элемента ListView получить вне ListView

Вот реально огромное спасибо!! У вас большое терпение с нами возиться и отзывчивость.

  • EVILEG
  • 11 декабря 2017 г. 8:09

QCustomPlot исчезает часть графика при перестроении

Объявить volumeAxisRect в заголовочном файле

  • EVILEG
  • 9 декабря 2017 г. 21:24

Как написать парсер страницы при помощи js

Эм... лично я даже растерялся от такого вопроса... У javascript есть методы типо document.getElementById document.getElementByTag, которые выбирают нужные теги и мож...

Ошибки при многопоточном запуске функции библиотке

Большое спасибо, так заработало QFuture<void> Perebor2 = QtConcurrent::map(Perebor,[=](const double& d){ StrategyCod(d,this);});

  • grig_p
  • 8 декабря 2017 г. 12:49

Прерывание таймера в режиме singleShot

спасибо. У меня логика такая, что таймер я должен перезапустить по определенному событию. То есть, событие, запускающее таймер, при срабатывании в период его ожидания, должно запустить таймер ...