2012-04-24 2 views
1

나는 mainWindow에 대한 배경만을 제공하고 다른 모든 위젯은 백그라운드없이 사용되는 App을 구축하고 있지만 앱을 실행할 때 100 % 투명하지 않습니다. 다소 반투명한데, foreground 만 배경 힌트없이 나타날 수 있도록 100 % 투명하게 만드는 방법이 있습니다.Qt에서 위젯 배경을 투명하게 만드는 방법

enter image description here

답변

0

당신이 순간에, 투명성을 얻기 위해 사용하는 코드를 게시 할 수 있을까요? 당신이 "무언가 반투명하다"고 말하면, 당신이 정말로 원하는 바가 아닌 도구 창을 만들었다 고 생각합니다.

제목 표시 줄을 제거하여 (QWidget 생성자에 Qt :: FramelessWindowHint를 두 번째 매개 변수 인 WindowFlags로 지정하여) 정말 투명한 기본 창을 만들 수 있습니다. 일반적이지 않은 색상 (예 : 255, 0,255). 그런 다음 잘라냅니다.

는 QWidget의 일부를 차단하는 매우 원시적 예 :

QBitmap b(100, 100); 
b.fill(Qt::black); 
setMask(b); 

QBitmap 볼 그 화이트되어야한다고 검은 픽셀이어야은 아니다. 이 예에서는 0,0에서 시작하는 100,100 개의 영역 만 보입니다. 나머지 창의 부분은 보이지 않습니다.

+0

스크린 샷에서 볼 수 있듯이, 자식 위젯은 자체 배경을 보여주고 있지만, 나는이 스타일 시트를 디자인 할 때 스타일 시트를 그대로 두었습니다. – abhishek