컴퓨터 공학/Qt

[ Qt 프로그래밍 ] Windows OS에서 투명창을 내부까지 확장하기

혼새미로 2015. 11. 27. 01:52
반응형

Qt5.2에서 소개된 QtWin이라는 네임스페이스가 있습니다.

이 네임스페이스를 이용하여 윈도우에서 사용하는 DWM을 조금은 건드릴 수 있게되었습니다.

DWM이란?


"

데스크톱 창 관리자(영어: Desktop Window Manager, DWM)는 윈도 비스타, 윈도 7, 윈도 8에 도입된 컴포지트 창 관리자이다. 이전에는 데스크톱 컴포지트 엔진(영어: Desktop Compositing Engine, DCE)이라고 불렸다. DWM은 다이렉트엑스 9.0 및 셰이더 모델 2.0을 지원하는 그래픽 카드를 요구한다.

원래는 투명도와 3차원 창 전환과 같은 윈도 에어로 사용자 경험을 사용할 수 있게 할 목적으로 만들어졌다.

"


http://ko.wikipedia.org/wiki/%EB%8D%B0%EC%8A%A4%ED%81%AC%ED%86%B1_%EC%B0%BD_%EA%B4%80%EB%A6%AC%EC%9E%90 


따라서 정식명칭 에어로 글라스를 Qt에서도 사용할 수 있게되었습니다.

먼저,

사용할 클래스에 다음과 같이 헤더파일은 선언합니다.


#include <QtWinExtras>


그리고 프로젝트 .pro파일에 다음을 추가합니다.


 QT += winextras


그리고 적용할 위젯의 생성자에 다음 코드를 추가합니다.


 

1
2
3
4
QtWin::extendFrameIntoClientArea(this, -1, -1, -1, -1);
setAttribute(Qt::WA_TranslucentBackground, true);
setAttribute(Qt::WA_NoSystemBackground, false);
setStyleSheet("Widget { background: transparent; }");
cs

 


그리고 실행을 하면 다음과 같이 위젯이 투명해진 것을 확인할 수 있습니다.


 



이상입니다.


반응형