Как установить значок приложения в Qt

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

Значок называется «room.ico» и находится в том же каталоге, что и исходный файл.

Вот код:

#include <QApplication>
#include <QWidget>

int main( int argc, char *argv[ ] )
{
   QApplication app( argc, argv) ;
   QWidget fenetre;
   fenetre.setWindowIcon(QIcon("room.ico")); // Nothing happens
   fenetre.setWindowTitle("Heloo");    
   fenetre.show();
   return app.exec() ;
}

Я пытался добавить win32:RC_ICONS += room.ico в .pro file, но это не сработало. Я также пробовал "./room.ico", но значка все еще нет.

Я пытался использовать это:

QPixmap pixmap = QPixmap ("room.ico");
fenetre.setWindowIcon(QIcon(pixmap));

И угадайте, что !!! это не сработало ... я просто новичок в QT: p

Любые предложения будут оценены, спасибо


person The Beast    schedule 21.01.2016    source источник


Ответы (1)


документация QT для QWindow::setWindowIcon должна быть тем, что вам нужно.

  1. Создайте файл значка (похоже, вы уже сделали это: room.ico
  2. Добавьте файл значка в файл ресурсов QT (.qrc или .rc), который вы должны добавить в свой проект (файл документация обсуждает, как это сделать
  3. Use setWindowIcon and pass in a QIcon:
    1. app.setWindowIcon(QIcon(":/room.ico")); (this assumes your file is in the resource file)

Ваша проблема заключается в том, что вы не добавили :/ при передаче имени файла в QIcon.

person Tas    schedule 21.01.2016
comment
Убедитесь, что вы предлагаете правильную строку в аргументе функции. - person Alexander V; 21.01.2016
comment
@AlexanderVX Хорошо подмечено, спасибо. Я обновил ответ. - person Tas; 21.01.2016
comment
@Tas Следуя документации, я добавил RC_ICONS = myappico.ico в файл .pro, и мне нужно запустить команду qmake, чтобы появился значок. Теперь он работает только с app.setWindowIcon(QIcon("room.ico")); + файл ресурсов не нужен :) - person The Beast; 21.01.2016
comment
Решен вопрос о том, что не работает метод RC_ICONS += stackoverflow.com/a/18814639/4149835 - person Vladimir Bershov; 21.01.2016
comment
Важно использовать путь к изображению с QIcon следующим образом: app.setWindowIcon(QIcon(":/image.png"));, а НЕ URL-адрес изображения: app.setWindowIcon(QIcon("qrc:/image.png")); обратите внимание, что путь к изображению не содержит qrc. - person user3405291; 28.10.2018