한국어
파이썬
 

PyQt4 QML 및 Window 투명처리

makersweb 2015.04.22 22:26 조회 수 : 4042

 '''
Created on Apr 15, 2015

@author: pjk
'''
import sys
from PyQt4 import QtGui, QtCore, QtDeclarative

VIDEO_QML_GUI       = 'qml/USBVideo.qml'

class VideoApplication(QtDeclarative.QDeclarativeView):
    '''
    classdocs
    '''

    global rootObject
    
    def __init__(self, parent=None):
        '''
        Constructor
        '''
        QtDeclarative.QDeclarativeView.__init__(self, parent)  
        self.setStyleSheet("background:transparent")
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint)
        self.setResizeMode(QtDeclarative.QDeclarativeView.SizeRootObjectToView)
        self.setSource(QtCore.QUrl("VIDEO_QML_GUI)
        self.setGeometry(0, 0, 1280, 720)
        self.Setup()
        self.rootObject = self.rootObject()

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    video_ui = VideoApplication()
    video_ui.show()
    sys.exit(app.exec_())

 

USBVideo.qml은 Item컴포넌트를 사용해서 구현하였고 python코드에서 이부분이 창의 특성을 투명으로 설정한다.

self.setStyleSheet("background:transparent")
self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint)

 

대략 이런 모습이 나온다.

Screenshot from 2015-04-22 22^%09^%17.png