2012-03-31 16 views
5
#include <QtGui> 

class Label : public QLabel 
{ 
public: 
    Label(QWidget *parent =0) : 
     QLabel(parent) 
    { 
     resize(100, 100); 
     setText("hello"); 
     show(); 
    } 
}; 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 

    Label l; 

    return a.exec(); 
} 

Dies gibt ein Label 'Hallo' mit einem Hintergrund aus. Ich benutze Qt4. Ich möchte den Hintergrund dieses Labels komplett transparent machen. Aber setWindowOpacity ändert die gesamte Transparenz des Widgets. Ich möchte den Inhalt so wie er ist, aber nur den Hintergrund transparent machen.TranspaPrent QLabel

+2

Es gibt einen Artikel mit dem Titel "Transparente Hintergründe in Qt 4.1" hier: http://doc.qt.nokia.com/qq/qq16-background.html Wird dies für Sie arbeiten? – aldo

+0

@aldo - das Nokia Dokument existiert nicht mehr online. –

Antwort

12

Ich fand dies als einfacher ....

QWidget::setAttribute(Qt::WA_TranslucentBackground); 
0

Wenn Sie ein QColor mit Alpha von 0 definieren Sie Hintergrund mit transparenter Farbe, so zum Beispiel erhalten:

QColor bg_color(255, 0, 0, 0); 
QPalette p(l.palette()); 
p.setColor(QPalette::BackgroundColor, bg_color); 
l.setPalette(p); 

Welchen Hintergrund des Labels, was Farbe transparent machen sollte.

8

Sie können Stylesheets verwenden, um die Farbe und den Alpha-Wert des Hintergrunds zu setzen:

setStyleSheet("background-color: rgba(0,0,0,0%)"); 
0

In PyQt:

lbl.setAttribute (Qt.WA_TranslucentBackground, True)

Verwandte Themen