質問

I have a MainWindow with a QLabel and a pixmap. I want to make it transparent (or less opaque)

I am using the following code below.

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

However it does not seem to work. The image looks the same without any changes. I also tried to use to the following statement:

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

Unfortunately, this does not seem to work either.

Anyone knows how can I make an image transparent or make it less opaque?

Thank you for your time.

役に立ちましたか?

解決

If your image isn't transparent as it is and you want it to be, you can do something like this:

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));

他のヒント

You can apply QGraphicsOpacityEffect to a label to adjust it's opacity.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top