5

我有一个带有 QLabel 和像素图的 MainWindow。我想让它透明(或不透明)

我正在使用下面的代码。

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

但是,它似乎不起作用。图像看起来没有任何变化。我还尝试使用以下语句:

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

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

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

感谢您的时间。

4

2 回答 2

7

如果您的图像不是透明的并且您希望它是透明的,您可以执行以下操作:

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));
于 2013-09-12T11:55:53.310 回答
0

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

于 2013-09-12T14:17:30.593 回答