设置Qt Widget掩码

时间:2012-08-07 12:22:30

标签: c++ qt qt4

我想在我的QT应用程序中有一个带有图标图像形状的按钮。我正在尝试通过使用alpha通道从使用过的图像(.png)中获取蒙版来设置按钮蒙版。

以下是感兴趣的代码行:

QPushButton button();
QPixmap pixmap("image_path.png");
QIcon icon(pixmap);
button.setIcon(icon);
button.setMask(pixmap.createMaskFromColor(Qt::transparent,Qt::MaskInColor));

结果是按钮消失了!

通过做一些测试,我确信掩码是正确创建的,错误在哪里?

1 个答案:

答案 0 :(得分:4)


如果你像这样使用带有alpha的.png:
transparent png
你可以将它的形状设置为这样的面具:

QPushButton button;
button.resize(50,50);
button.show();

QPixmap mask("D:/shape.png");
button.setMask(mask.mask());

你会得到如下结果:
result shape button