Как динамически установить изображение значка панели задач при запуске приложения? - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть приложение Qt C ++ с некоторым значком на панели задач по умолчанию.При запуске приложения новый значок панели задач будет загружен динамически и должен быть установлен как значок панели задач.

Я устанавливаю значок панели задач, который выглядит примерно так:

void MainWindow::setIcon)
{
    // some other code
    QTemporaryFile tempFile;
    QFile iconTemp(tempFile.fileName() + "TaskbarIcon");
    if(iconTemp.open(QFile::WriteOnly))
    {
        iconTemp.write(data); // data is the new image for taskbar icon in bytes
        iconTemp.close();
    }

    setWindowIcon(QIcon(iconTemp.fileName()));
    iconTemp.remove();

    // some more code
}

Также обратите внимание, что в случае любой ошибки значок по умолчанию устанавливается следующим образом:

setWindowIcon(QIcon(":/Images/my_default_icon.ico"));

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

Но, если я устанавливаю приложение Qt с помощью ярлыков (например, ярлык на рабочем столе или меню Пуск), а затем запускаю приложение через EXE или любой из его ярлыков,значок новой панели задач не отображается.Вместо этого отображается значок панели задач по умолчанию.Теперь, если я щелкну правой кнопкой мыши значок панели задач и один раз закреплю / откреплю, значок новой панели задач отображается правильно.

Может кто-нибудь помочь, как решить эту проблему?

Примечание. ДинамическоеЗначок на панели задач - это не файл .ICO, а файл png или jpg.

...