QApplication:: setWindowIcon работает на Windows XP, Но не работает на Windows 7
В простом приложении Qt, начинающемся так:
int main(int argc, char* argv[])
{
QApplication app(argc, argv);
app.setWindowIcon(QIcon(":/qapp/appicon.ico"));
...
Мы устанавливаем значок во второй строке (эта строка и файл значка в resources-единственное различие между моей тестовой программой и приложением, сгенерированным Qt wizard). Это приложение отлично работает на Windows XP, Но на Windows 7 мы не можем видеть наш значок в левом верхнем углу окна (система показывает значок по умолчанию вместо моего appicon.ico).
Конфигурация компьютера разработчика:
- окна XP-SP3,
- Qt 5.1,
- MSVS2010-SP1.
Обновление:
Операционная система разработчика-Windows XP, поэтому у нас есть временный ответ. Когда мы скомпилировали это приложение на компьютере с Windows 7, проблема исчезла (приложение показывает значок правильно на WinXP и Win7). Так что теперь мы должны скомпилировать релизы этого приложения на Windows 7. Но это не выглядит идеальным решением.
Есть ли у вас какие-либо идеи, как решить эту проблему - лучше?
2 ответов:
Аналогичный вопрос есть .значки ico не отображаются в Windows . Решение простое:
- создать каталог
imageformats
в приложении dir,- копия
qico.dll
в нем.Без этого плагина QIcon не может читать .файлы ico. Так что проблема была не в Windows 7 и Windows XP. Проблема заключалась в переменных путей по умолчанию на разных компьютерах.
Я предполагаю, что вы должны создать файл ресурсов
windows_icon.rc
со следующим содержимым:IDI_ICON1 ICON DISCARDABLE "images/app-icon-48.ico"
И добавьте эту строку в файл вашего приложения .pro:
RC_FILE = windows_icon.rc
Таким образом вы устанавливаете значок приложения в Windows (тот, который становится значком exe-файла)
Comments