故事背景:由於要做終端定制的需求,在服務端上傳一張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);
如果大家有更好的方法或者其他類似的可以在評論區分享出來,一起學習一起進步,分享給更多的人。