回复: Qt 中如何实现对图片设置透明色显示
#6 回 3楼(wowk) 的帖子 [genius0555 08-14 14:51]
大俠,如果我想圖片1.png在一個QLabel內做背景,並且設置粉紅色為透明色,該如何做呢?拜託了
#7 [wowk 08-14 15:42]
QPixmap pix("D:/1.png"); //载入图片
QBitmap mask= pix.createMaskFromColor(QColor(255,0,255),Qt::MaskInColor);//创建粉红色像素的掩码 位图
pix.setMask(mask); //使用创建好的掩码位图 将pix 中 粉红色的像素掩掉,也就是设置为透明
经过这样处理,pix中粉红色的像素已经被设置为透明了, 也就是说你在label 上或者 pushbutton 或者 其他什么上
使用pix 的时候你都不会看到粉红色
#8 回 7楼(wowk) 的帖子 [genius0555 08-14 15:52]
ui.setupUi(this);
QPixmap pix(":/Button/Resources/Button/Button_Pause-1.png");
QBitmap mask= pix.createMaskFromColor(QColor(255,0,255),Qt::MaskInColor);
pix.setMask(mask);
ui.label->setPixmap( pix );
這樣設置背景不對,該如何設置Label的背景呢?
#9 [wowk 08-14 17:22]
怎么不对了
QPixmap pix("D:/1.png");
QBitmap mask= pix.createMaskFromColor(QColor(255,0,255),Qt::MaskInColor);
pix.setMask(mask);
ui->label->setAutoFillBackground(true);
pix = pix.scaled(ui->label->size(),Qt::IgnoreAspectRatio,Qt::SmoothTransformation);
ui->label->setPixmap(pix);
这不显示的挺好的啊