이 페이지에서

그래픽

크로스 플랫폼 애플리케이션은 Qt를 사용하여 그래픽 요소를 표시할 수 있습니다. Qt는 플랫폼의 기본 그래픽 API를 추상화하여 개발자가 애플리케이션 코드에 집중할 수 있도록 합니다.

Qt와 대상 그래픽 API 사이에 위치하는 Qt 렌더링 하드웨어 인터페이스

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는 가능한 한 대상 플랫폼의 그래픽 API를 사용하지만, 특정 API를 사용하여 Qt의 렌더링 경로를 설정할 수도 있습니다. 많은 경우, 특정 API를 선택하면 성능이 향상될 수 있으며, 개발자가 특정 그래픽 API를 지원하는 플랫폼에 애플리케이션을 배포할 수 있게 됩니다. QQuickWindow 에서 렌더링 경로를 설정하는 방법에 대해서는 ‘Qt 렌더링 하드웨어 인터페이스를 통한 렌더링’ 페이지를 참조하십시오.

2D 그래픽

Qt에는 2D 그래픽 프리미티브를 그리는 데 사용할 수 있는 여러 가지 API가 있습니다. 이에 대한 개요는 ‘Qt의 2D 그래픽’에 대한 별도 페이지를 참조하십시오.

3D 그래픽 Qt Quick 3D

Qt Quick 3D 는 Qt Quick 를 기반으로 3D 콘텐츠 및 3D 사용자 인터페이스를 생성하기 위한 고수준 API를 제공하는 애드온입니다. 이 애드온은 Qt Quick 시나리오 그래프를 확장하여, 2D Qt Quick 애플리케이션에서 3D 콘텐츠를 구현할 수 있게 해줍니다.

Qt 6 벤치마크 데모에서 Qt Quick 3D 장면 실행

셰이더 효과

Qt Shader Tools 는 버텍스 및 프래그먼트 셰이더를 Qt Quick 인터페이스용 패키지로 변환하는 도구인 QSB를 제공합니다. 특히, ShaderEffect QML 타입과 QSGMaterial 서브클래스는 QSB의 출력 결과를 사용할 수 있습니다. Qt Quick 3D 는 셰이더를 3D 장면으로 가져오기 위한 자체 프레임워크를 갖추고 있습니다.

다음 목록에는 셰이더 효과에 대한 정보가 포함되어 있습니다.

셰이더 효과를 보여주는 Qt Quick 3D 장면

High-Level Graphics with Qt GUI

Qt GUI 는 고급 수준의 윈도우, 페인팅 및 타이포그래피 시스템을 제공합니다. QPainter 는 벡터 그래픽, 텍스트 및 이미지를 다양한 표면이나 QPaintDevice 인스턴스(예: QImage, QOpenGLPaintDevice, QWidget 및 QPrinter)에 그리는 데 필요한 API를 제공합니다. Qt Widgets 사용자 인터페이스의 경우, Qt는 소프트웨어 렌더러를 사용합니다.

다음 목록에는 Qt GUI의 고수준 그리기 API에 대한 정보가 포함되어 있습니다.

다음의 저수준 그래픽 Qt GUI

Qt GUI 는 OpenGL 컨텍스트 및 Vulkan 인스턴스를 관리하기 위한 크로스 플랫폼 지원 기능을 제공합니다. 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 플랫폼 추상화 ( Qt Platform Abstraction) 클래스와 마찬가지로, 당분간 제한된 호환성 보장을 제공하는 “반공개(semi-public)” API로 제공됩니다. 다만, QRhi 클래스에는 완전한 문서가 제공됩니다. 시작하려면 QRhi 클래스를 참조하십시오.

이 Qt GUI 모듈만으로도 QRhi 기반 렌더링을 통해 QWindow 또는 QRhiTexture 와 같은 오프스크린 버퍼를 대상으로 설정할 수 있습니다. QWidget 또는 QML(Qt Quick)을 기반으로 한 사용자 인터페이스의 경우, 네이티브 플랫폼이 지원하는 QWindow 를 사용하는 것이 항상 가장 편리한 방법은 아닙니다. 이것이 바로 Qt Widgets 모듈은 ` QRhiWidget`를 제공하는 반면, ` Qt Quick `는 ` QQuickRhiItem`를 제공합니다. 이러한 기본 클래스를 사용하면 ` QWidget ` 또는 ` QQuickItem `의 하위 클래스를 편리하게 생성할 수 있으며, 해당 인스턴스는 이식 가능한 ` QRhi` 기반 렌더링을 텍스처로 수행한 후, 이를 위젯(Widgets) 또는 ` Qt Quick ` 장면과 자동으로 합성합니다.

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`를 사용하여 이미지 형식 플러그인을 만들 수 있습니다.

자세한 내용은 ‘이미지 파일 읽기 및 쓰기’ 페이지를 참조하십시오.

© 2026 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.