2013-09-12 3 views
1

У меня есть MainWindow с QLabel и pixmap. Я хочу сделать его прозрачным (или менее непрозрачным)Сделать прозрачную прозрачную карту для QLabel

Я использую следующий код ниже.

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

Однако, похоже, что это не сработало. Изображение выглядит без изменений. Я также попытался использовать в следующем отчете:

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

К сожалению, это также не работает.

Кто-нибудь знает, как я могу сделать изображение прозрачным или сделать его менее непрозрачным?

Спасибо за ваше время.

+0

Вы уверены, что ваше изображение прозрачное? Вы попробовали 'background-color: transparent;'? –

+0

Нет, это не работает: S – Elseine

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

ЧУВСТВИТЕЛЬНО! Это то, что я хочу сделать =) – Elseine

Смежные вопросы