위 같은 하나의 위젯의 테두리에 그림자 효과를 만들어야 하는 미션이 떨어졌다.
디자이너는 이것을 OutGlow라고 하였다.
그래서 검색을 하던 중, Qt에 QGraphicsDropShadowEffect 라는 class에서 비슷한 기능을 제공하고 있었다.
하지만 우리의 디자인은 Qt에서 제공하는 기본 기능으로만 구현 되는것을 요구하진 않는다.
좀더 큰 radius와 퍼짐이 좀 더 큰 효과를 원했다.
그래서 검색을 하던 중, 역시나 StackOverflow에는 나보다 먼저 고민을 한 사람이 있었다.
https://stackoverflow.com/questions/23718827/qt-shadow-around-window 의 글을 참조하여 적용해 보았다.
왼쪽은 QGraphicsDropShadowEffect 를 적용한 Widget이며,
오른쪽은 ShadowEffect라는 Class를 통해 적용된 Widget이다.
Position 은 Shadow
Effect의 위치를 나타내며, 0.0 일때, 정중앙을 기준으로 shadow 효과가 나타난다.
Length는 shadow의 크기를 나타내며, normal effect 에는 적용이 안된다.
Radius는 0일때 사각형이며, 커질 수록 곡률이 생긴다.
Binary : https://drive.google.com/open?id=0ByvWiBJz6HrFQjZaWEdyY2lzejQ
Source : https://github.com/holograming/QtDevZone/tree/master/Src/OutGlow
Binary : https://drive.google.com/open?id=0ByvWiBJz6HrFQjZaWEdyY2lzejQ
Source : https://github.com/holograming/QtDevZone/tree/master/Src/OutGlow
댓글 없음:
댓글 쓰기