2012-03-31 44 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(); 
} 

這會輸出帶背景的標籤'hello'。我正在使用Qt4。我想讓這個標籤的背景完全透明。但是setWindowOpacity更改了整個窗口小部件的透明度。我想要的內容,但只有背景是透明的。Transpaprent QLabel

+2

這裏有一篇標題爲「Qt 4.1中的透明背景」的文章:http://doc.qt.nokia.com/qq/qq16-background.html這樣可以幫你嗎? – aldo 2012-03-31 04:47:52

+0

@aldo - 諾基亞文檔不再在線存在。 – 2016-05-08 14:25:20

回答

12

,我發現這是簡單....

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

如果定義QColor0阿爾法你會得到背景透明色,因此,例如:

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

這將使標籤的背景顏色的任何透明。

8

您可以使用樣式表來設置顏色和背景的Alpha值:

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

在PyQt的:

lbl.setAttribute(Qt.WA_TranslucentBackground,True)