我有一个带有一些默认任务栏图标的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文件。