故事背景:由于要做终端定制的需求,在服务端上传一张128像素的图片,下发给客户端,适配所有图标(界面左上角、任务栏、快捷方式、托盘等),但是由于每个位置的图标大小不一样,代码要根据本身控件的大小做一个适配,开始我们的探险之路。。。。。。
解决方案:主要解决界面左上角16像素的适配,这里我用了三种方案,供大家参考
1、pTmpLogo->setStyleSheet("border-image:url(/home/xxx/Desktop/16-128-256/b128.png)");,这种方式图片会失真,不能用,放弃
2、这种连写的方式也不生效,所以也给大家一个建议,以后遇到类似的操作,尽量分开写,不要连着写!!!!!!
pTmpLogo->setPixmap(QPixmap("/home/xupeidong/Desktop/16-128-256/b128.png").scaled(16,16)); pTmpLogo->setScaledContents(true);
3、这是最合理的方式,希望大家借鉴
QPixmap pix(CommonInterface::m_strIcoPath); pix.scaled(QSize(16,16), Qt::KeepAspectRatio); m_pLabelLogo->setPixmap(pix); m_pLabelLogo->setScaledContents(true);
如果大家有更好的方法或者其他类似的可以在评论区分享出来,一起学习一起进步,分享给更多的人。