2011-05-07 38 views
1

如何創建一個窗口小部件或窗口將只是一個透明的圖像? 我的意思是像在這個方案:sakura script player
我的嘗試是:從圖像Qt窗口小部件形狀

label = QtGui.QLabel(None, 
        QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint) 
label.setPixmap(QtGui.QPixmap('c:\transparent.png')) 
label.setScaledContents(True) 

label.show() 

但只產生一個長方形的窗口,儘管圖像的透明度

+0

忘了提及,即時通訊使用PyQt4 | Python3.2 | Windows7,但試圖得到一些'跨平臺'的代碼 – chapaev 2011-05-07 11:15:28

+0

行,解決了它!下面是示例(plane.png內容alpha通道): pixmap = QtGui.QPixmap('c:\ plane.png') label.setPixmap(pixmap) label.setMask(pixmap.mask()) shitty格式化系統 – chapaev 2011-05-07 12:14:18

回答

2

你會使用的QWidget::setMask()和一個組合的從QPixmap S創建QBitmap口罩的功能:

曾經有在Qt的分佈的xpenguin般的例子,但他們有一個整形的時鐘取代它(如果你的Qt 3.3左右,退房examples/tux/tux.cpp)。