2013-06-24 3 views
4

내용물에 둥근 모서리가있는 QWebView를 표시하려고하므로 원래의 흰색 모서리를 숨기려면 투명한 배경이 필요합니다. 나는 "속임수"를 사용하고 그래서 내가Mac OS X의 투명한 QWebView

this->view.setAttribute(Qt::WA_TranslucentBackground); 

을 추가하고 지금은 그것이 리눅스 (우분투) 및 Windows에 가정 것이 아니라 어떻게 작동 나를 위해 작동하지 않았다

here 발견 Mac OS X. Mac OS X은 검은 색 모서리를 계속 표시합니다. 나는이

this->view.setStyleSheet("background: transparent;"); 

또는

this->view.setStyleSheet("background-color: none"); 

또는

this->view.setStyleSheet("QWidget { background: transparent; }"); 

같은 설정 스타일을 시도하지만 아무것도 작동하지 않습니다. 그 일을 할 수있는 방법이 있습니까? Qt 5.0.2를 사용하고 있습니다. 이 코드 밖으로

답변

0

마지막으로 Qt를 5.0.2에서 5.1.0으로 업그레이드하여이 문제를 해결했습니다. 최적의 해결책은 아니지만 4.x에서 5.0.x까지 많은 회귀가있는 것으로 보입니다.

+1

당신은이 일을 해낼 수있어서 기뻤습니다. Qt 5.x.x로 프로젝트를 아직 업그레이드하지 않았습니다. 내 트레이 알림 위젯이 Qt 5.x.x에서 나중에 작동하는지 확인하려고합니다. –

2

점검 : https://github.com/pcmantinker/Tray-Notification-System/blob/master/traynotificationwidget.cpp

내가 Qt를 호환 모든 플랫폼에서 시스템 트레이에 알림 위젯을 표시하는 동안 다시 프로젝트를했다.

트릭은 상위 위젯에 테두리가없고 배경이없는 중첩 위젯을 만드는 것이고 하위 위젯은 QSS로 사용자 정의 할 수있는 디스플레이 위젯이됩니다.

여기 보이는 방법에 대한 몇 가지 샘플 이미지입니다 :
윈도우 7
Windows 7
맥 OS X 라이온
Mac OS X Lion
우분투
Ubuntu
난이 도움이되기를 바랍니다에게. 궁금한 점이 있으면 알려주세요.

+0

이것은 정확히 내가 의도 한 것입니다. 나는 "알림"을 의미하지만 html + webkit으로 만들었습니다. 코드를 구현하고 알려 드리겠습니다. – stepanbujnak

+1

이 코드가 귀하의 목적에 맞게 변경되기를 바랍니다. 이론적으로, 자식 위젯을 투명 배경으로 만들면이 기술이 효과적입니다. –

+0

코드를 시도했지만 Mac OS X에서도 작동하지 않았습니다. 어쩌면 QWebView를 투명하게 만들려고했기 때문일 수도 있습니다. – stepanbujnak