Qt 플랫폼 추상화
Qt 플랫폼 추상화(QPA)는 Qt의 주요 플랫폼 추상화 계층입니다.
API는 QPlatform*
클래스 접두사로 식별할 수 있으며, 일반적으로 다음과 같은 상위 클래스 구현에 사용됩니다. Qt GUI예를 들어 QWindow 을 통해 노출되는 윈도우 시스템 통합을 위한 QPlatformWindow
또는 QStyleHint와 QStyle 을 통해 노출되는 보다 심층적인 플랫폼 테마 및 통합을 위한 QPlatformTheme
입니다.
QPA 클래스에 대한 소스 또는 바이너리 호환성은 보장되지 않으므로, API는 해당 API가 개발된 Qt 버전에서만 작동하도록 보장됩니다. 그러나 API 변경은 마이너 릴리스에서만 이루어집니다. (5.1, 5.2 등).
API 개요
- 창 시스템 통합
- Q플랫폼통합
- Q플랫폼접근성
- Q플랫폼백업스토어
- Q플랫폼클립보드
- Q플랫폼커서
- QPlatformDrag
- QPlatformFontDatabase
- QPlatformGraphicsBuffer
- QPlatformInputContext
- QPlatformOffscreenSurface
- QPlatformOpenGLContext
- QPlatformScreen
- QPlatformServices
- QPlatformSharedGraphicsCache
- QPlatformSurface
- QPlatformWindow
- 스타일/테마
- Q플랫폼테마
- 플랫폼 팔레트
- 플랫폼 글꼴
- 테마 힌트
- 기본 대화 상자 및 메뉴
- Q플랫폼대화상자 도우미
- QPlatformMenu
- Q플랫폼메뉴바
- QPlatformMenuItem
참고: QPA API 외에도 Qt에는 다른 많은 플랫폼 추상화가 있습니다. Qt Core 와 RHI의 렌더링 하드웨어 추상화 등이 있습니다. QPA API는 대부분 윈도우 시스템 통합 및 관련 지원에 중점을 두고 있습니다.
QPA 플러그인
위에 나열된 인터페이스의 구체적인 구현은 QPA 플러그인 또는 플랫폼 플러그인에 존재하며, Qt가 실행되는 다양한 플랫폼에 대한 지원을 추가합니다. QPA 플러그인은 QPlatform*
클래스를 서브 클래싱하여 구현됩니다.
다음 표는 사용 가능한 플랫폼 플러그인을 요약한 것입니다:
플러그인 이름 | 플러그인 클래스 이름 | 설명 |
---|---|---|
qandroid | QAndroid플랫폼통합 | 안드로이드 지원 |
qbsdfb | QBsdFb통합 | BsdFb 지원 |
qcocoa | QCocoa통합 플러그인 | macOS 지원 |
qdirect2d | QWindowsDirect2DIntegrationPlugin | qwindows 플러그인과 유사하지만 QPixmap 및 QBackingStore 에 대해 래스터 페인트 엔진을 Direct2D 기반 페인트 엔진으로 대체합니다. |
qdirectfb | QDirectFb통합 플러그인 | DirectFB는 표면을 중심으로 하며, 이는 QPaintDevice. |
qeglfs | QEglFS통합 플러그인 | 임베디드 Linux 장치에 대한EGLFS 지원. |
qhaiku | QHaikuIntegration | 하이쿠 지원 |
qios | QIOSIntegrationPlugin | iOS 지원 |
qlinuxfb | QLinuxFb통합 플러그인 | 임베디드 Linux 장치에 대한LinuxFB 지원. |
qvnc | QVnc통합 | VNC 지원 |
qwayland |
| Wayland 지원 |
qwindows | QWindows통합플러그인 | Windows 지원 |
qxcb | QXcb통합 플러그인 | X 윈도우 시스템(X11) 지원 |
QPA 플러그인 선택하기
Qt는 플랫폼에 따라 기본 QPA 플러그인을 선택합니다. QT_QPA_PLATFORM
환경 변수와 -platform
명령줄 인수를 사용하면 이 기본값을 재정의할 수 있습니다. 자세한 내용은 QGuiApplication 을 참조하십시오.
QPA 플러그인 작성하기
현재로서는 QPA 플러그인 작성에 대한 자세한 튜토리얼 문서는 없습니다. 그러나 테스트 및 기타 특수 목적을 위해 Qt와 함께 제공되는 최소한의 플러그인 두 개가 있으며 예제로 사용할 수 있습니다:
qtbase/src/plugins/platforms/minimal/
qtbase/src/plugins/platforms/minimalegl/
qminimal
플러그인은 다음에 링크하는 도구에 사용됩니다. Qt GUI와 연결되지만 윈도우 시스템 통합이 필요하지 않은 도구(예: qmlplugindump
)에 사용됩니다. 또한 환경 변수에 따라 창 내용을 이미지 파일로 덤프하는 진단 지원 기능도 있습니다.
© 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.