QPaintDevice Class
QPaintDevice 클래스는 ` QPainter`를 사용하여 그림을 그릴 수 있는 객체들의 기본 클래스입니다. 더 보기...
| 헤더: | #include <QPaintDevice> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| 상속된 항목: | QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, QPixmap, QSvgGenerator 및 QWidget |
- 상속된 멤버를 포함한 모든 멤버 목록
- QPaintDevice는 페인팅 클래스의 일부입니다.
공개 유형
| enum | PaintDeviceMetric { PdmWidth, PdmHeight, PdmWidthMM, PdmHeightMM, PdmNumColors, …, PdmDevicePixelRatioF_EncodedB } |
공개 함수
| virtual | ~QPaintDevice() |
| int | colorCount() const |
| int | depth() const |
| qreal | devicePixelRatio() const |
| qreal | devicePixelRatioF() const |
| int | height() const |
| int | heightMM() const |
| int | logicalDpiX() const |
| int | logicalDpiY() const |
| virtual QPaintEngine * | paintEngine() const = 0 |
| bool | paintingActive() const |
| int | physicalDpiX() const |
| int | physicalDpiY() const |
| int | width() const |
| int | widthMM() const |
정적 공용 멤버
(since 6.8) int | encodeMetricF(QPaintDevice::PaintDeviceMetric metric, double value) |
보호된 함수
| QPaintDevice() | |
| virtual int | metric(QPaintDevice::PaintDeviceMetric metric) const |
상세 설명
페인트 디바이스(paint device)는 QPaintDevice( QPainter)를 사용하여 그림을 그릴 수 있는 2차원 공간의 추상화입니다. 이 디바이스의 기본 좌표계는 왼쪽 상단 모서리를 원점으로 합니다. X축은 오른쪽으로 갈수록 값이 커지고, Y축은 아래로 갈수록 값이 커집니다. 단위는 1픽셀입니다.
QPaintDevice의 그리기 기능은 현재 QWidget, QImage, QPixmap, QPicture 및 QPrinter 하위 클래스에 의해 구현됩니다.
새로운 백엔드에 대한 지원을 구현하려면 QPaintDevice를 상속받고, 가상 함수 paintEngine()를 재구현하여 QPainter 에 이 특정 장치에서 그리기 위해 어떤 페인트 엔진을 사용해야 하는지 알려야 합니다. 또한, 해당 장치에서 그리기 위해서는 대응하는 페인트 엔진을 생성해야 한다는 점에 유의하십시오. 즉, QPaintEngine 를 상속받고 그 가상 함수들을 재구현해야 합니다.
경고: Qt에서는 페인트 장치를 생성하기 전에 QGuiApplication 객체가 존재해야 합니다. 페인트 장치는 윈도우 시스템 리소스에 접근하며, 이러한 리소스는 애플리케이션 객체가 생성되기 전에는 초기화되지 않습니다.
QPaintDevice 클래스는 다양한 장치 메트릭을 반환하는 여러 함수를 제공합니다. depth() 함수는 비트 심도(비트 플레인 수)를 반환합니다. height() 함수는 기본 좌표계 단위(예: QPixmap 및 QWidget 의 경우 픽셀)로 높이를 반환하는 반면, heightMM()는 장치의 높이를 밀리미터 단위로 반환합니다. 마찬가지로, ` width()` 및 ` widthMM()` 함수는 각각 기본 좌표계 단위 및 밀리미터 단위로 기기의 너비를 반환합니다. 또는, 보호된 ` metric()` 함수를 사용하여 원하는 ` PaintDeviceMetric `를 인수로 지정함으로써 측정 정보를 가져올 수도 있습니다.
logicalDpiX() 및 logicalDpiY() 함수는 장치의 가로 및 세로 해상도를 인치당 도트(dpi) 단위로 반환합니다. physicalDpiX() 및 physicalDpiY() 함수도 장치의 해상도를 인치당 도트(dpi) 단위로 반환하지만, 논리적 해상도와 물리적 해상도가 다른 경우 해당 QPaintEngine 가 매핑을 처리해야 한다는 점에 유의해야 합니다. 마지막으로, colorCount() 함수는 페인트 장치에서 사용할 수 있는 서로 다른 색상의 수를 반환합니다.
QPaintEngine, QPainter, 좌표계 및 페인트 시스템항목도 참조하십시오 .
멤버 유형 설명서
enum QPaintDevice::PaintDeviceMetric
페인트 디바이스의 다양한 메트릭을 설명합니다.
| 상수 | 값 | 설명 |
|---|---|---|
QPaintDevice::PdmWidth | 1 | 기본 좌표계 단위로 표시된 페인트 장치의 너비(예: QPixmap 및 QWidget 의 경우 픽셀). width()도 참조하십시오. |
QPaintDevice::PdmHeight | 2 | 기본 좌표계 단위(예: QPixmap 및 QWidget 의 경우 픽셀)로 표시된 페인트 장치의 높이입니다. height()도 참조하십시오. |
QPaintDevice::PdmWidthMM | 3 | 페인트 장치의 너비(밀리미터 단위). widthMM()도 참조하십시오. |
QPaintDevice::PdmHeightMM | 4 | 페인트 장치의 높이(밀리미터 단위). heightMM()도 참조하십시오. |
QPaintDevice::PdmNumColors | 5 | 페인트 장치에서 사용할 수 있는 서로 다른 색상의 수입니다. colorCount()도 참조하십시오. |
QPaintDevice::PdmDepth | 6 | 페인트 장치의 비트 심도(비트 플레인 수). depth()도 참조하십시오. |
QPaintDevice::PdmDpiX | 7 | 장치의 수평 해상도(인치당 도트 수). logicalDpiX()도 참조하십시오. |
QPaintDevice::PdmDpiY | 8 | 장치의 수직 해상도(인치당 도트 수). logicalDpiY()도 참조하십시오. |
QPaintDevice::PdmPhysicalDpiX | 9 | 인치당 도트(dpi) 단위로 표시된 장치의 수평 해상도. physicalDpiX()도 참조하십시오. |
QPaintDevice::PdmPhysicalDpiY | 10 | 장치의 수직 해상도(인치당 도트). physicalDpiY()도 참조하십시오. |
QPaintDevice::PdmDevicePixelRatio | 11 | 장치의 장치 픽셀 비율입니다. 일반적인 값은 일반 dpi 디스플레이의 경우 1, 고해상도 "레티나" 디스플레이의 경우 2입니다. |
QPaintDevice::PdmDevicePixelRatioScaled | 12 | 해당 장치의 스케일링된 장치 픽셀 비율입니다. 이 값은 PdmDevicePixelRatio와 동일하지만, 소수 스케일 계수를 가진 페인트 장치를 지원하기 위해 값이 일정한 스케일링 계수로 조정된다는 점이 다릅니다. 사용되는 일정한 스케일링 계수는 devicePixelRatioFScale()입니다. 이 열거형 값은 Qt 5.6에서 도입되었습니다. |
QPaintDevice::PdmDevicePixelRatioF_EncodedA (since Qt 6.8) | 13 | 이 열거형 항목은 해당 B 항목과 함께, 인코딩된 double 부동소수점 값으로서 장치의 장치 픽셀 비율을 나타내는 데 사용됩니다. 소수점 DPR 값을 지원하는 QPaintDevice 하위 클래스는 metric() 함수를 재정의하여 이 두 열거형 항목에 대한 지원을 구현해야 합니다. 반환 값은 encodeMetricF() 함수의 결과여야 합니다. |
QPaintDevice::PdmDevicePixelRatioF_EncodedB (since Qt 6.8) | 14 | PdmDevicePixelRatioF_EncodedA를 참조하십시오. |
metric() 및 devicePixelRatio()도 참조하십시오 .
멤버 함수 문서
[noexcept protected] QPaintDevice::QPaintDevice()
페인트 디바이스를 생성합니다. 이 생성자는 QPaintDevice의 하위 클래스에서만 호출할 수 있습니다.
[virtual noexcept] QPaintDevice::~QPaintDevice()
페인트 디바이스를 삭제하고 창 시스템 리소스를 해제합니다.
int QPaintDevice::colorCount() const
페인트 장치에서 사용할 수 있는 서로 다른 색상의 수를 반환합니다. 사용 가능한 색상의 수가 int 데이터 유형으로 표현하기에는 너무 많을 경우, 대신 INT_MAX가 반환됩니다.
int QPaintDevice::depth() const
페인트 장치의 비트 심도(비트 플레인 수)를 반환합니다.
qreal QPaintDevice::devicePixelRatio() const
지정된 장치의 장치 픽셀 비율을 반환합니다.
일반적인 값은 일반 DPI 디스플레이의 경우 1, 고해상도 "레티나" 디스플레이의 경우 2입니다.
qreal QPaintDevice::devicePixelRatioF() const
해당 기기의 장치 픽셀 비율을 부동 소수점 숫자로 반환합니다.
[static, since 6.8] int QPaintDevice::encodeMetricF(QPaintDevice::PaintDeviceMetric metric, double value)
metric 메트릭에 대해 인코딩된 value 값을 반환합니다. metric()을 구현하는 하위 클래스는 이 함수를 사용하여 인코딩해야 합니다.
| 상수 | 설명 |
|---|---|
as | 쿼리 메트릭이 인코딩된 부동 소수점 값을 지정할 때 정수 반환 값을 인코딩해야 합니다. |
이 함수는 Qt 6.8에서 도입되었습니다.
int QPaintDevice::height() const
기본 좌표계 단위(예: QPixmap 및 QWidget 의 경우 픽셀)로 표시된 페인트 장치의 높이를 반환합니다.
heightMM()도 참조하십시오 .
int QPaintDevice::heightMM() const
페인트 장치의 높이를 밀리미터 단위로 반환합니다. 플랫폼의 제한으로 인해 이 함수를 사용하여 화면에서 위젯의 실제 물리적 크기를 파악할 수 없을 수도 있습니다.
height()도 참조하십시오 .
int QPaintDevice::logicalDpiX() const
글꼴 크기를 계산할 때 사용되는, 장치의 가로 해상도를 인치당 도트(dpi) 단위로 반환합니다. X11의 경우, 이 값은 일반적으로 widthMM() 함수를 통해 계산된 값과 동일합니다.
logicalDpiX()의 결과가 physicalDpiX()의 결과와 일치하지 않는 경우, 해당 QPaintEngine 가 해상도 매핑을 처리해야 한다는 점에 유의하십시오.
logicalDpiY() 및 physicalDpiX()도 참조하십시오 .
int QPaintDevice::logicalDpiY() const
글꼴 크기를 계산할 때 사용되는, 장치의 세로 해상도를 인치당 도트(dpi) 단위로 반환합니다. X11의 경우, 이 값은 일반적으로 heightMM() 함수를 통해 계산된 값과 동일합니다.
logicalDpiY()의 값이 physicalDpiY()에서 계산된 값과 일치하지 않는 경우, 해당 QPaintEngine 가 해상도 매핑을 처리해야 합니다.
logicalDpiX() 및 physicalDpiY()도 참조하십시오 .
[virtual protected] int QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const
지정된 페인트 장치 metric 에 대한 메트릭 정보를 반환합니다.
PaintDeviceMetric도 참조하십시오 .
[pure virtual] QPaintEngine *QPaintDevice::paintEngine() const
장치에 그림을 그리는 데 사용되는 페인트 엔진에 대한 포인터를 반환합니다.
bool QPaintDevice::paintingActive() const
현재 해당 장치에 대한 그리기 작업이 진행 중일 경우(즉, 누군가가 이 장치에 대해 ` QPainter::begin()`를 호출했으나 ` QPainter::end()`는 아직 호출하지 않은 경우), ` true `를 반환하고, 그렇지 않은 경우 ` false`를 반환합니다.
QPainter::isActive()도 참조하십시오 .
int QPaintDevice::physicalDpiX() const
장치의 가로 해상도를 인치당 도트(dpi) 단위로 반환합니다. 예를 들어, 인쇄 시 이 해상도는 프린터의 물리적 해상도를 의미합니다. 반면 논리적 DPI는 실제 렌더링 엔진이 사용하는 해상도를 의미합니다.
physicalDpiX()의 값이 logicalDpiX()의 값과 일치하지 않는 경우, 해당 QPaintEngine 가 해상도 매핑을 처리해야 합니다.
physicalDpiY() 및 logicalDpiX()도 참조하십시오 .
int QPaintDevice::physicalDpiY() const
장치의 가로 해상도를 인치당 도트(dpi) 단위로 반환합니다. 예를 들어, 인쇄 시 이 해상도는 프린터의 물리적 해상도를 의미합니다. 반면 논리적 DPI는 실제 페인트 엔진이 사용하는 해상도를 의미합니다.
physicalDpiY()의 값이 logicalDpiY()의 값과 일치하지 않는 경우, 해당 QPaintEngine 가 해상도 매핑을 처리해야 합니다.
physicalDpiX() 및 logicalDpiY()도 참조하십시오 .
int QPaintDevice::width() const
기본 좌표계 단위(예: QPixmap 및 QWidget 의 경우 픽셀)로 표시되는 페인트 장치의 너비를 반환합니다.
widthMM()도 참조하십시오 .
int QPaintDevice::widthMM() const
페인트 장치의 너비를 밀리미터 단위로 반환합니다. 플랫폼의 제한 사항으로 인해 이 함수를 사용하여 화면에서 위젯의 실제 물리적 크기를 파악할 수 없는 경우가 있습니다.
width()도 참조하십시오 .
© 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.