我已经在谷歌上搜索了很多这个话题,出于某种原因,我认为我没有正确设置面具。我想要做的是在QLabel中显示一个圆形的图像。不应显示跨越边界的部分图像。这就是我要做的
QPixmap circ( ":/qt/images/circ.png" );
QPixmap img( ":/qt/images/no.bmp" );
ui.label_h->setMask(circ.mask());
ui.label_h->setPixmap(img);中国保监会文件是一个带有黑色填充的圆圈的png图像,img显然是一个图像,任何关于如何实现这一点的建议都将受到高度赞赏。我的代码显然只是在正方形的边界上显示图像。
更新
这就是我要用的
QPixmap circ( ":/qt/images/circ.png" );
QPixmap mask = circ.createMaskFromColor(Qt::black, Qt::MaskOutColor);
QPixmap img( ":/qt/images/no.bmp" );
ui.label_h->setMask(mask);
ui.label_h->setPixmap(img);这是之前的结果

这些是链接
http://i.tinyuploads.com/EFxSB7.png
http://i.tinyuploads.com/9knGNd.bmp
发布于 2013-11-27 11:52:13
您正在调用circ.mask(),根据Qt文档:-
从像素地图的alpha通道提取位图掩码。
你说中国保监会的图像有一个黑色的圆圈,所以要么把它更改为有一个带有圆圈的alpha通道,要么根据图像创建掩码:-
QPixmap mask = circ.createMaskFromColor(Qt::black, Qt::MaskOutColor);然后用这个口罩:-
ui.label_h->setMask(mask);https://stackoverflow.com/questions/20241504
复制相似问题