为QLabel制作透明像素图

时间:2013-09-12 11:17:53

标签: qt transparency qpixmap

我有一个带有QLabel和pixmap的MainWindow。我想让它透明(或不太透明)

我在下面使用以下代码。

ui->label->setAttribute(Qt::WA_TranslucentBackground);
ui->label->repaint();

然而它似乎不起作用。图像看起来没有任何变化。我也尝试使用以下声明:

    ui->label->setStyleSheet("background-color: rgba(255, 255, 255, 10);");

不幸的是,这似乎也不起作用。

任何人都知道如何使图像透明或使其不透明?

感谢您的时间。

2 个答案:

答案 0 :(得分:5)

如果您的图片不是透明的,而您希望它是这样的,您可以这样做:

QLabel *l = new QLabel(this);
QImage image(":/img/myimage.png");
QPainter p;
p.begin(&image);
p.setCompositionMode(QPainter::CompositionMode_DestinationIn);
p.fillRect(image.rect(), QColor(0, 0, 0, 50));
p.end();
l->setPixmap(QPixmap::fromImage(image));

答案 1 :(得分:0)

您可以将QGraphicsOpacityEffect应用于标签以调整其不透明度。