Как заставить setWindowIcon работать должным образом в автономном исполняемом файле (Qt5.14 + VS2019)? - PullRequest
0 голосов
/ 31 марта 2020

Я программирую приложение Qt в MS Visual Studio Community 2019. Я пытаюсь добавить значок в окно своего приложения с помощью следующей команды, и у меня также есть соответствующий файл my_icon.ico , упомянутый в файл .qr c:

setWindowIcon(QIcon(":/my_icon.ico"));

Когда я собираю и запускаю свою программу в VS, все идеально - значок заменяет стандартный. Однако когда я делаю релиз и пытаюсь запустить полученный автономный исполняемый файл, значок НЕ отображается! Это особенно странно, поскольку изображения, которые я также упоминаю в файле .qr c (изображения для кнопок), находятся на своих местах.

Я попытался поместить my_icon. ico рядом с файлом .exe , но безрезультатно.

Я сдаюсь, пожалуйста, дайте мне подсказку, что здесь может происходить.

1 Ответ

0 голосов
/ 01 апреля 2020

Благодаря chehrli c я понял, что это так же просто, как запустить windeployqt.exe в сборке файла .exe в Release. Конфигурация Visual Studio.

Это будет динамически связывать все необходимые библиотеки.

Избегайте использования этого инструмента, пока файл .exe находится в папке Release, поскольку он создаст много другие файлы и папки рядом с .exe файлом. Я скопировал my_app.exe в каталог fre sh и выполнил из него следующую команду:

C:\Qt\5.14.1\msvc2017_64\bin\windeployqt.exe my_app.exe --release

См. https://doc.qt.io/qt-5/windows-deployment.html для получения дополнительной информации.

...