문제
창의 배경을 투명하게 만들려고 노력합니다. 그러나 그 위젯 아래에서 나는 데스크탑 이미지의 일부를 볼 수 있습니다. 이제 제작자에 이것을 가지고 있습니다.
self.setFocusPolicy(Qt.StrongFocus) self.setAttribute(Qt.WA_QuitOnClose,True) self.setBackgroundRole(QtGui.QPalette.Base) self.setAttribute(Qt.WA_NoSystemBackground)
해결책
GS의 답변에 따르면,이 FAQ는 왜 (QT 4.5 이전)이 작업을 달성 할 수없는 이유를 설명합니다.
창이 투명하고 위젯이 QT가 아닌 부분 투명성에 대한 직접적인 지원이 없습니다.
PYQT의 최신 버전은 QT 4.4에 대해 생성되었으므로 원하는 반 트랜스 파렌트 창을 지원하지 않습니다. 기본 창의 배경색을 투명 이외의 다른 것으로 설정하는 경우 GS의 다른 답변 (true)이 작동합니다.
또한 qt.wa_nosystembackgroun
위젯에 배경이 없음, 즉 위젯이 페인트 이벤트를받을 때 배경이 자동으로 다시 페인트되지 않음을 나타냅니다. 참고 : WA_OPAQUEPAINTEVENT와 달리 새로 노출 된 영역은 배경으로 채워지지 않습니다 (예 : 응용 프로그램이 페인트 이벤트를 처리 할 때까지 사용자가 처음 볼 수있는 창을 표시 한 후). 이것은 위젯의 저자가 설정/지우 셨습니다.
다른 팁
방금 찾았습니다 이것:
반투명 창을 만듭니다
QT 4.5 이후, 복합을 지원하는 창 시스템에서 반투명 영역이있는 창을 만들 수 있습니다.
최상위 위젯 에서이 기능을 활성화하려면 qt :: wa_translucentbackground 속성을 setattribute ()로 설정하고 부분적으로 투명하고 싶은 영역에서 배경이 비대형 색상으로 칠해져 있는지 확인하십시오.
PYQT는 여전히 QT 4.4입니다. 아마도 문제 일 수도 있습니다.
위젯에 대해 이것을 시도하십시오.
widget.setAutoFillBackground(True)
QT 디자이너에도 설정할 수 있다고 생각합니다.