QT 任务栏图标显示问题

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大米粥哥哥

感谢认可!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值