2013-01-12 3 views
0

나는 Qt는의 반투명 창을 만들고 싶어 :반투명 특성을 사용할 때 흰색 유물을 피하는 방법은 무엇입니까?

:

setWindowFlags(Qt::Popup| Qt::FramelessWindowHint); 
setAttribute(Qt::WA_TranslucentBackground,true); 

을하지만 각 위젯의 네 모서리에 Qt::WA_TranslucentBackgroundtrue에있을 것입니다 흰색 물건을 설정하면 마우스가 위젯을 가리키거나 클릭 할 때마다 나타납니다. 이것을 피하는 방법? Qt::WA_TranslucentBackgroundfalse으로 설정하면 문제가 해결됩니다. 하지만 투명 창이 필요해. 미리 감사드립니다.

+0

를 해결했다. 현재 사용중인 플랫폼을 포함하여 자세한 정보를 제공해주십시오. –

+0

내 OS는 Windows이고, WinXP 및 Win7에서 사용해 보았습니다. 모두이 문제가 있습니다. 나는이 위젯에도 스타일 시트를 사용한다. 앤티 앨리어싱 글꼴 인 Arial을 사용하십시오. – miguel

+0

paintEvent에 투명한 검은 색 배경을 그립니다. 어쩌면 검정색 배경이므로 흰 모서리를 더욱 분명하게 만들 수 있습니다. – miguel

답변

0

나는 그것을 직접 해결했다. 이러한 아티팩트가 발생하게하는 두 가지 이유가 있습니다. 나는 창에 대한 반투명 배경을 켰으며, QPainter를 사용하여 수동으로 창의 구석 구석 배경을 그립니다. 어린이 위젯을 마우스로 가리키거나 누르면 위젯이 창 위젯에 보낸 업데이트 (QRect)가 배경을 잘 계산하지 못합니다. 나는 배경을 그리는 스타일 시트를 사용하는 경우

는, 문제는이를 복제 할 수없는 것 :

관련 문제