문제

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