2011-08-28 8 views
2

the documentation for Qt Style Sheets을 조사한 결과 내 위젯의 배경색을 바꿀 수 있다는 것을 알게되었고 even set transparency입니다.Qt4 스타일 시트로 알파 채널을 활성화하는 방법은 무엇입니까?

여기에 --- 나에게 따라해야 코드 --- 작품 :

application = QtGui.QApplication(sys.argv) 
application.setStyleSheet(QtCore.QString('MainWindow {background-color: rgba(20, 0, 0, 75%)}')) 

그리고 실제로 그것은 윈도우의 배경 색상은 해당 RGB 값으로 변경되는 정도 작동합니다. 그러나 알 수있는 한, 알파 값은 내 응용 프로그램에 아무런 영향을 미치지 않습니다.

편집 : 나는 알파 채널이 현재 작동하고 있으며, 응용 프로그램의 배경이나 캔버스 만 (내가 어떻게 호출해야하는지 모르겠다) 검은 색이라는 것을 알고 있습니다. 메인 위젯이 아니라 투명하게 만들어야합니다. 이것을 어떻게 할 수 있습니까?

NB : 저는 Gnome을 사용하여 Ubuntu 11.04에서 실행 중입니다.

답변

1

나는 하나의 대답을 찾았습니다 elsewhere on SO하지만 태그를 처음 만난 적이 없었습니다. 그래서 여기에서 내 자신의 질문에 대답 할 것입니다 :

Qt 스타일 시트는 위젯에만 투명성을 제공하지만 검은 색 캔버스에 그려집니다.

self.setAttribute(QtCore.Qt.WA_TranslucentBackground, True) 

이 그러나 단지 급진적 인 솔루션 제공이 캔버스를 투명하게하기 위해, 주요 위젯의 속성과 같이 변경해야합니다 전체 창이 투명, 그러나 부분 투명도를 설정 할 수있는 방법은 없습니다 이렇게. 그래서 나는이 대답에 완전히 만족하지 않습니다.

0

부모와 함께 위젯을 사용하는 경우 setMask을 사용하고 알파 채널이있는 마스크를 제공 할 수 있습니다. 불규칙한 형태의 위젯에 특히 유용합니다.

1

또한이 코드 widget.setStyleSheet("background-color: rgba(20, 0, 0, 75%);")에 문제가 있습니다.하지만이 코드로 변경하면 widget.setStyleSheet("background-color: rgba(255, 0, 0, 75%);")으로 바뀌 었습니다.

관련 문제