• 13149阅读
  • 9回复

Qt 中如何实现对图片设置透明色显示 [复制链接]

上一主题 下一主题
离线genius0555
 

只看楼主 倒序阅读 楼主  发表于: 2013-08-12

圖片的粉紅色設置成透明色,然後顯示:

求各位大俠,幫幫忙,具體怎麼實現的
离线wowk
只看该作者 1楼 发表于: 2013-08-12
    QPixmap     pix("D:/1.png");
    QBitmap mask= pix.createMaskFromColor(QColor(255,0,255),Qt::MaskInColor);
    pix.setMask(mask);
岁月静好
离线genius0555

只看该作者 2楼 发表于: 2013-08-12
回 1楼(wowk) 的帖子
大俠,如果我設置背景圖,是在stylesheet中設定的
QPixmap     pix("D:/1.png");
    QBitmap mask= pix.createMaskFromColor(QColor(255,0,255),Qt::MaskInColor);
    pix.setMask(mask);
也是好的?
离线wowk
只看该作者 3楼 发表于: 2013-08-12
回 2楼(genius0555) 的帖子
pix中颜色为粉红的像素已经被设置成透明了  所以无论在哪儿用都是ok的
岁月静好
离线genius0555

只看该作者 4楼 发表于: 2013-08-13
回 3楼(wowk) 的帖子
test.rar (5148 K) 下载次数:3
我還是沒搞好,這小弟做的一個簡單的顯示
离线genius0555

只看该作者 5楼 发表于: 2013-08-14
回 3楼(wowk) 的帖子
剛剛接觸QT,能給我講講這三句代碼的具體含義嘛?
离线genius0555

只看该作者 6楼 发表于: 2013-08-14
回 3楼(wowk) 的帖子
大俠,如果我想圖片1.png在一個QLabel內做背景,並且設置粉紅色為透明色,該如何做呢?拜託了
离线wowk
只看该作者 7楼 发表于: 2013-08-14
QPixmap     pix("D:/1.png");                                 //载入图片
QBitmap mask= pix.createMaskFromColor(QColor(255,0,255),Qt::MaskInColor);    //创建粉红色像素的掩码 位图
pix.setMask(mask);             //使用创建好的掩码位图 将pix 中 粉红色的像素掩掉,也就是设置为透明

经过这样处理,pix中粉红色的像素已经被设置为透明了  , 也就是说你在label 上或者 pushbutton 或者 其他什么上
使用  pix 的时候你都不会看到粉红色
岁月静好
离线genius0555

只看该作者 8楼 发表于: 2013-08-14
回 7楼(wowk) 的帖子
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的背景呢?
离线wowk
只看该作者 9楼 发表于: 2013-08-14
怎么不对了  
    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);


这不显示的挺好的啊
岁月静好
快速回复
限100 字节
 
上一个 下一个