我正在尋找使QWidget部分半透明。QWidget每像素透明度
QWidget::setMask可以設置每像素透明度,like this,但它是 - 或者 - 不是半透明的。
QWidget::opacity可以設置全局半透明度,但它不是每個像素。
如何獲得兩全其美的效果併爲每個像素添加一個alpha通道到整個控件? (裝飾不要緊。)
我正在尋找使QWidget部分半透明。QWidget每像素透明度
QWidget::setMask可以設置每像素透明度,like this,但它是 - 或者 - 不是半透明的。
QWidget::opacity可以設置全局半透明度,但它不是每個像素。
如何獲得兩全其美的效果併爲每個像素添加一個alpha通道到整個控件? (裝飾不要緊。)
QLabel topLevelLabel;
QPixmap pixmap(":/images/tux.png");
topLevelLabel.setPixmap(pixmap);
topLevelLabel.setMask(pixmap.mask());
正如原帖所述,這不是半透明的(將其掩蓋爲位圖) – spraff
它看起來像QStyle類是你可能正在尋找,尤其是,將QStyle :: drawItemPixmap;然後使用QWidget :: setStyle()。儘管我從來沒有使用過這個
可能的重複:http://stackoverflow.com/questions/1333610/displaying-translucent-irregular-shaped-windows-with-qt和per-Pixel部分,你可以用alpha通道繪製一個'QPixmap'作爲的背景。 – alexisdm
必須同意上面的評論。按照上面鏈接中的設置,在繪畫事件中繪製你想要的東西。 –