QQuickWidget - QQuickView 비교 예시

기본 창으로 임베드된 QQuickView 보다 QQuickWidget 의 이점을 보여줍니다.

이 예에서는 두 가지 접근 방식을 사용하여 동일한 QWidget 기반 사용자 인터페이스 내에서 동일한 Qt Quick 장면을 표시할 수 있습니다. 하나는 QQuickView 을 사용하여 자식 창으로 사용하고 QWidget::createWindowContainer()을 사용하는 것입니다. 다른 하나는 실제 QWidget 처럼 작동하고 실제 QWidget 에서 예상되는 것처럼 더 나은 클리핑 및 스태킹을 지원하는 QQuickWidget 을 사용하는 것입니다.

Qt Quick 장면은 또한 직접 OpenGL 렌더링을 사용하여 QQuickWidget 에서도 여전히 가속화된 3D API를 사용하여 렌더링이 이루어짐을 증명합니다. 이는 이 예제가 OpenGL에 묶여 있으며 다른 그래픽 API(벌칸, 메탈, 다이렉트 3D)에서는 작동하지 않는다는 것을 의미합니다.

오버레이 표시 확인란을 클릭하면 네이티브 창을 포함할 때 위젯 스택이 예상대로 렌더링되지 않는 경우를 보여주는 반면, QQuickWidget 을 클릭하면 예상대로 렌더링됩니다.

멀티샘플 앤티앨리어싱도 실행할 수 있습니다. 해당 체크박스를 통해 활성화하면 QQuickWidget 은 내부적으로 멀티샘플 렌더버퍼로 렌더링한 다음 각 렌더링 패스 후에 멀티샘플이 아닌 일반 2D 텍스처로 해결되므로 나머지 QWidget UI에 영향을 주지 않고 Qt Quick 콘텐츠에 멀티샘플링을 활성화할 수 있습니다. QQuickView 을 사용하면 네이티브 창이 해당 창 표면에 대한 멀티샘플링을 요청하여 플랫폼에서 지원하는 경우 유사한 결과를 가져옵니다.

Qt Quick 장면은 대화형이므로 어떤 임베딩 기술을 사용하든 텍스트 필드에 입력할 수 있습니다. QQuickWidget 은 입력 이벤트를 기본 Qt Quick 장면으로 자동으로 전달합니다.

예제 프로젝트 @ code.qt.io

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.