QT5.13 任务栏显示问题
1.问题现象
打开程序有时可以正确显示任务栏图标
但是有时图标一闪而过 显示一片黑(底部任务栏的背景颜色)详情如下:
2.出现原因
经测试,应该是
RC_ICONS = path/name.ico 和 setWindowIcon 设置图标引起的冲突
//我的问题代码(例子)
RC_ICONS = logo.ico // pri文件中
setWindowIcon(QIcon(":logo.ico")); // 窗体构造函数 图标一样也会有问题
//setWindowIcon(QIcon(":logo.png"));
3.解决方案
去掉setWindowIcon相关代码
只在pri文件中设置图标 RC_ICONS = path/name.ico
或者使用QWinTaskbarButton进行覆盖 or 刷新
// 窗体构造函数中
this->show(); // 得先show才能获取windowHandle
QWinTaskbarButton *button = new QWinTaskbarButton(this);
button->setWindow(this->windowHandle()); // 获取窗体handle
button->setOverlayIcon(QIcon(":logo.ico")); // 不设置覆盖图标图标 只显示原图标也可以解决此bug
QWinTaskbarProgress *progress = button->progress(); // 进度
progress->setVisible(true);
progress->setValue(0);
4.测试脚本(.bat)
@echo off
title 打开关闭程序测试 -- das白
:end
start E:\gy\cs\cs.exe
echo "started,等待7秒后关闭"
choice /t 7 /c YN /d Y
taskkill /f /im cs.exe
echo %time% 关闭程序
::timeout /T 5
goto end
::帮助命令 help taskkill 、timeout /? 、 choice /? 、help start