2011-10-13 113 views
1

我正在尋找使QWidget部分半透明。QWidget每像素透明度

QWidget::setMask可以設置每像素透明度,like this,但它是 - 或者 - 不是半透明的。

QWidget::opacity可以設置全局半透明度,但它不是每個像素。

如何獲得兩全其美的效果併爲每個像素添加一個alpha通道到整個控件? (裝飾不要緊。)

+1

可能的重複:http://stackoverflow.com/questions/1333610/displaying-translucent-irregular-shaped-windows-with-qt和per-Pixel部分,你可以用alpha通道繪製一個'QPixmap'作爲的背景。 – alexisdm

+0

必須同意上面的評論。按照上面鏈接中的設置,在繪畫事件中繪製你想要的東西。 –

回答

0

也許QWidget::setMaks()

QLabel topLevelLabel; 
QPixmap pixmap(":/images/tux.png"); 
topLevelLabel.setPixmap(pixmap); 
topLevelLabel.setMask(pixmap.mask()); 
+0

正如原帖所述,這不是半透明的(將其掩蓋爲位圖) – spraff

0

它看起來像QStyle類是你可能正在尋找,尤其是,將QStyle :: drawItemPixmap;然後使用QWidget :: setStyle()。儘管我從來沒有使用過這個