이 페이지에서

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

공개 유형

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::PdmWidth1기본 좌표계 단위로 표시된 페인트 장치의 너비(예: QPixmap 및 QWidget 의 경우 픽셀). width()도 참조하십시오.
QPaintDevice::PdmHeight2기본 좌표계 단위(예: QPixmap 및 QWidget 의 경우 픽셀)로 표시된 페인트 장치의 높이입니다. height()도 참조하십시오.
QPaintDevice::PdmWidthMM3페인트 장치의 너비(밀리미터 단위). widthMM()도 참조하십시오.
QPaintDevice::PdmHeightMM4페인트 장치의 높이(밀리미터 단위). heightMM()도 참조하십시오.
QPaintDevice::PdmNumColors5페인트 장치에서 사용할 수 있는 서로 다른 색상의 수입니다. colorCount()도 참조하십시오.
QPaintDevice::PdmDepth6페인트 장치의 비트 심도(비트 플레인 수). depth()도 참조하십시오.
QPaintDevice::PdmDpiX7장치의 수평 해상도(인치당 도트 수). logicalDpiX()도 참조하십시오.
QPaintDevice::PdmDpiY8장치의 수직 해상도(인치당 도트 수). logicalDpiY()도 참조하십시오.
QPaintDevice::PdmPhysicalDpiX9인치당 도트(dpi) 단위로 표시된 장치의 수평 해상도. physicalDpiX()도 참조하십시오.
QPaintDevice::PdmPhysicalDpiY10장치의 수직 해상도(인치당 도트). physicalDpiY()도 참조하십시오.
QPaintDevice::PdmDevicePixelRatio11장치의 장치 픽셀 비율입니다. 일반적인 값은 일반 dpi 디스플레이의 경우 1, 고해상도 "레티나" 디스플레이의 경우 2입니다.
QPaintDevice::PdmDevicePixelRatioScaled12해당 장치의 스케일링된 장치 픽셀 비율입니다. 이 값은 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)14PdmDevicePixelRatioF_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.