그래픽
크로스 플랫폼 애플리케이션은 Qt를 사용하여 그래픽 요소를 표시할 수 있습니다. Qt는 개발자가 애플리케이션 코드에 집중할 수 있도록 플랫폼의 기본 그래픽 API를 추상화합니다.
Qt 렌더링 하드웨어 인터페이스(RHI)는 Qt 애플리케이션의 3D 그래픽 호출을 대상 플랫폼에서 사용 가능한 그래픽 API로 변환합니다.
지원되는 그래픽 API는 다음과 같습니다:
- OpenGL(버전 2.1 이상)
- OpenGL ES(버전 2.0 이상)
- Vulkan(버전 1.0 이상)
- Direct3D 11(버전 11.1 이상)
- Direct3D 12(버전 12.0 이상)
- Metal(버전 1.2 이상)
그래픽 Qt Quick
Qt Quick 애플리케이션의 그래픽은 렌더링에 장면 그래프를 사용합니다. 장면 그래프 렌더러는 효율적인 그래픽 호출을 생성하고 성능을 향상시킬 수 있습니다. 씬 그래프에는 액세스 가능한 API가 있어 복잡하지만 빠른 그래픽을 유연하게 만들 수 있습니다.
다음 목록의 페이지에는 Qt Quick 애플리케이션 렌더링에 대한 자세한 정보가 포함되어 있습니다.
- Qt Quick 씬 그래프
- 씬 그래프 및 렌더링
- Qt Quick 씬 그래프 기본 렌더러
- QRhi-기반 및 기본 3D 렌더링으로 씬 그래프 확장하기 - 애플리케이션에서 제공하는 그래픽 명령(OpenGL, Vulkan, Direct3D 등)을 Qt Quick 씬 그래프에 통합하는 방법.
렌더링 경로 선택하기
Qt는 가능한 한 대상 플랫폼의 그래픽 API를 사용하지만, 특정 API로 Qt의 렌더링 경로를 설정할 수 있습니다. 대부분의 경우 특정 API를 선택하면 성능을 향상시킬 수 있으며 개발자는 특정 그래픽 API가 있는 플랫폼에 배포할 수 있습니다. 렌더링 경로를 설정하는 방법은 Qt XML 렌더링 하드웨어 인터페이스를 통한 렌더링 페이지( QQuickWindow)를 참조하십시오.
3D 그래픽 Qt Quick 3D
Qt Quick 3D 는 Qt Quick 을 기반으로 3D 콘텐츠와 3D 사용자 인터페이스를 만들기 위한 높은 수준의 API를 제공하는 애드온입니다. 2D Qt Quick 애플리케이션에서 3D 콘텐츠를 구현할 수 있는 Qt Quick 씬 그래프를 확장합니다.
셰이더 효과
Qt Shader Tools 는 버텍스 및 프래그먼트 셰이더를 Qt Quick 인터페이스용 패키지로 변환하는 도구인 QSB를 제공합니다. 특히 ShaderEffect QML 유형과 QSGMaterial 서브클래스는 QSB의 출력을 사용할 수 있습니다. Qt Quick 3D 에는 셰이더를 3D 씬으로 임포트하기 위한 자체 프레임워크가 있습니다.
다음 목록에는 셰이더 효과에 대한 정보가 포함되어 있습니다.
- Qt Shader Tools
- 프로그래밍 가능한 머티리얼, 효과, 지오메트리 및 텍스처 데이터 - 머티리얼 및 셰이더의 Qt Quick 3D
하이 레벨 그래픽 Qt GUI
Qt GUIQPainter 는 벡터 그래픽, 텍스트 및 이미지를 다양한 표면에 그리기 위한 API를 제공하거나 QPaintDevice 인스턴스(예: QImage, QOpenGLPaintDevice, QWidget, QPrinter 등)를 제공합니다. Qt Widgets 사용자 인터페이스의 경우, Qt는 소프트웨어 렌더러를 사용합니다.
다음 목록에는 Qt GUI의 고수준 그리기 API에 대한 정보가 포함되어 있습니다.
로우 레벨 그래픽 Qt GUI
Qt GUI 는 OpenGL 컨텍스트와 벌칸 인스턴스 관리를 위한 크로스 플랫폼 인에이블러를 제공합니다. OpenGL, OpenGL ES 또는 Vulkan으로 직접 렌더링을 수행하는 애플리케이션은 QOpenGLContext, QOpenGLFunctions, QVulkanInstance, QVulkanFunctions, QVulkanDeviceFunctions 를 사용하여 컨텍스트, 인스턴스를 관리하고 이식 가능한 방식으로 OpenGL 및 Vulkan API 기능에 액세스할 수 있습니다.
Qt GUI 또한 Qt 자체가 Qt Quick 씬 그래프와 Qt Quick 3D 렌더링 엔진을 구현하는 데 사용하는 휴대용 크로스 플랫폼 3D 렌더링 인프라를 사용하여 렌더링을 수행하려는 애플리케이션을 위해 QRhi 와 QShader 과 같은 Qt 렌더링 하드웨어 인터페이스(RHI) API 제품군도 제공합니다. 이 클래스들은 Qt 플랫폼 추상화 클래스와 마찬가지로 당분간 제한된 호환성을 약속하는 "준공개" API로 제공됩니다. 하지만 QRhi 클래스는 전체 문서와 함께 제공됩니다. 시작하려면 QRhi 클래스를 참조하세요.
모듈은 Qt GUI 모듈을 단독으로 사용하면 QWindow 또는 QRhiTexture 과 같은 오프스크린 버퍼를 QRhi 기반 렌더링으로 타겟팅할 수 있습니다. QWidget 또는 QML(Qt Quick) 기반의 사용자 인터페이스를 사용하는 경우 기본 플랫폼에서 지원하는 QWindow 으로 작업하는 것이 항상 가장 편리한 방법은 아닙니다. 그렇기 때문에 Qt Widgets 모듈은 QRhiWidget 을 제공하고 Qt Quick 은 QQuickRhiItem 을 제공합니다. 이러한 기본 클래스를 사용하면 QWidget 또는 QQuickItem 서브클래스를 편리하게 생성할 수 있으며, 이러한 인스턴스는 위젯 또는 Qt Quick 장면과 자동으로 합성되는 텍스처로 이식 가능한 QRhi 기반 렌더링을 수행합니다.
Qt OpenGL 모듈
모듈 Qt OpenGL 모듈은 OpenGL 액세스가 필요한 애플리케이션을 위한 모듈입니다. 이 모듈은 Qt 5 애플리케이션 및 Qt GUI 와의 호환성을 유지하기 위한 것입니다. QWidget , QOpenGLWidget 을 사용하는 사용자 인터페이스의 경우 OpenGL 장면을 추가할 수 있는 위젯입니다.
인쇄
Qt는 로컬 또는 네트워크에서 실제 프린터로 직접 인쇄할 수 있을 뿐만 아니라 PDF 출력도 지원합니다. Qt로 인쇄하는 방법에 대한 자세한 설명은 Qt Print Support 페이지에 자세히 설명되어 있습니다.
이미지
Qt는 QImage 클래스를 통해 이미지의 편리한 읽기, 쓰기, 조작을 지원합니다. 또한 이미지를 로드하거나 저장하는 방법을 보다 세밀하게 제어하려면 각각 QImageReader 및 QImageWriter 클래스를 사용할 수 있습니다. Qt에서 제공하는 것 외에 추가적인 이미지 포맷에 대한 지원을 추가하려면 QImageIOHandler 과 QImageIOPlugin 을 사용하여 이미지 포맷 플러그인을 만들 수 있습니다.
자세한 내용은 이미지 파일 읽기 및 쓰기 페이지를 참조하세요.
© 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.