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. Но это не выглядит идеальным решением.



Есть ли у вас какие-либо идеи, как решить эту проблему - лучше?

576   2  

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

    Ничего не найдено.