Spec-Zone.ru › Qt 6.1

Класс QPaintDevice

Класс QPaintDevice является базовым классом объектов, на которых можно рисовать с помощью QPainter. Подробнее...

Заголовок: #include <QPaintDevice>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
Наследуется от:

QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, QPixmap, QSvgGenerator и QWidget

  • Список всех членов, включая унаследованные

Типы публичного доступа

перечисление PaintDeviceMetric { PdmWidth, PdmHeight, PdmWidthMM, PdmHeightMM, PdmNumColors, …, PdmDevicePixelRatioScaled }

Функции публичного доступа

виртуальный ~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
виртуальный QPaintEngine * paintEngine() const = 0
bool paintingActive() const
int physicalDpiX() const
int physicalDpiY() const
int width() const
int widthMM() const

Защищённые функции

QPaintDevice()
виртуальный int metric(QPaintDevice::PaintDeviceMetric metric) const

Подробное описание

Устройство рисования — это абстракция двумерного пространства, на котором можно рисовать с помощью QPainter. Его система координат по умолчанию имеет начало в верхнем левом углу. X увеличивается вправо, а Y — вниз. Единица измерения — один пиксель.

Функциональность рисования QPaintDevice в настоящее время реализуется подклассами QWidget, QImage, QPixmap, QPicture и QPrinter.

Чтобы добавить поддержку нового бэкенда, необходимо унаследовать от QPaintDevice и переопределить виртуальную функцию paintEngine(), чтобы указать QPainter, какой движок рисования следует использовать для работы с данным устройством. Обратите внимание, что вам также необходимо создать соответствующий движок рисования, чтобы иметь возможность рисовать на устройстве, то есть унаследовать от QPaintEngine и переопределить его виртуальные функции.

Предупреждение: Qt требует, чтобы объект QGuiApplication существовал до создания каких-либо устройств рисования. Устройства рисования обращаются к системным ресурсам окна, и эти ресурсы не инициализируются до создания объекта приложения.

Класс QPaintDevice предоставляет несколько функций, возвращающих различные метрики устройства: функция depth() возвращает его разрядность (количество битовых плоскостей). Функция height() возвращает его высоту в единицах системы координат по умолчанию (например, пиксели для QPixmap и QWidget), в то время как heightMM() возвращает высоту устройства в миллиметрах. Аналогично, функции width() и widthMM() возвращают ширину устройства в единицах системы координат по умолчанию и в миллиметрах соответственно. В качестве альтернативы, защищённая функция metric() может использоваться для получения информации о метрике, указав желаемую метрику PaintDeviceMetric в качестве аргумента.

Функции logicalDpiX() и logicalDpiY() возвращают горизонтальное и вертикальное разрешение устройства в точках на дюйм. Функции physicalDpiX() и physicalDpiY() также возвращают разрешение устройства в точках на дюйм, но обратите внимание, что если логическое и физическое разрешение различаются, соответствующий QPaintEngine должен обрабатывать отображение. Наконец, функция colorCount() возвращает количество доступных цветов для устройства рисования.

См. также QPaintEngine, QPainter, Система координат и Система рисования.

Документация по типам членов

перечисление 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 Горизонтальное разрешение устройства в точках на дюйм. См. также physicalDpiX().
QPaintDevice::PdmPhysicalDpiY 10 Вертикальное разрешение устройства в точках на дюйм. См. также physicalDpiY().
QPaintDevice::PdmDevicePixelRatio 11 Отношение пикселей устройства для устройства. Общие значения — 1 для дисплеев с нормальным разрешением и 2 для дисплеев с высоким разрешением «retina».
QPaintDevice::PdmDevicePixelRatioScaled 12 Отношение масштабированных пикселей устройства для устройства. Идентично PdmDevicePixelRatio, за исключением того, что значение масштабируется постоянным коэффициентом, чтобы поддерживать устройства рисования с дробными коэффициентами масштабирования. Использованный постоянный коэффициент масштабирования — devicePixelRatioFScale(). Это значение перечисления было добавлено в Qt 5.6.

См. также metric() и devicePixelRatio().

Документация по функциям-членам

[protected] QPaintDevice::QPaintDevice()

Создаёт устройство рисования. Этот конструктор может вызываться только из подклассов QPaintDevice.

[virtual] QPaintDevice::~QPaintDevice()

Уничтожает устройство рисования и освобождает ресурсы системы окон.

int QPaintDevice::colorCount() const

Возвращает количество доступных различных цветов для устройства рисования. Если количество доступных цветов слишком велико, чтобы быть представленным типом данных int, то возвращается INT_MAX.

int QPaintDevice::depth() const

Возвращает разрядность устройства рисования (количество плоскостей бит).

qreal QPaintDevice::devicePixelRatio() const

Возвращает коэффициент пикселей устройства.

Общие значения — 1 для дисплеев с нормальной плотностью пикселей и 2 для дисплеев с высокой плотностью пикселей «Retina».

[since 5.6] qreal QPaintDevice::devicePixelRatioF() const

Возвращает коэффициент пикселей устройства в виде числа с плавающей точкой.

Эта функция была добавлена в Qt 5.6.

int QPaintDevice::height() const

Возвращает высоту устройства рисования в единицах координат по умолчанию (например, пиксели для QPixmap и QWidget).

См. также heightMM().

int QPaintDevice::heightMM() const

Возвращает высоту устройства рисования в миллиметрах. Из-за ограничений платформы может быть невозможно использовать эту функцию для определения фактического физического размера виджета на экране.

См. также height().

int QPaintDevice::logicalDpiX() const

Возвращает горизонтальное разрешение устройства в точках на дюйм, используемое при вычислении размеров шрифтов. Для X11 это обычно то же самое, что можно вычислить из widthMM().

Обратите внимание, что если logicalDpiX() не равен physicalDpiX(), соответствующий QPaintEngine должен обрабатывать сопоставление разрешений.

См. также logicalDpiY() и physicalDpiX().

int QPaintDevice::logicalDpiY() const

Возвращает вертикальное разрешение устройства в точках на дюйм, используемое при вычислении размеров шрифтов. Для 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

Возвращает true, если устройство в данный момент рисуется, т. е. кто-то вызвал QPainter::begin(), но ещё не вызвал QPainter::end() для этого устройства; в противном случае возвращает false.

См. также QPainter::isActive().

int QPaintDevice::physicalDpiX() const

Возвращает горизонтальное разрешение устройства в точках на дюйм. Например, при печати это разрешение относится к физическому разрешению принтера. Логическое разрешение, с другой стороны, относится к разрешению, используемому фактическим движком рисования.

Обратите внимание, что если physicalDpiX() не равен logicalDpiX(), соответствующий QPaintEngine должен обрабатывать сопоставление разрешений.

См. также physicalDpiY() и logicalDpiX().

int QPaintDevice::physicalDpiY() const

Возвращает горизонтальное разрешение устройства в точках на дюйм. Например, при печати это разрешение относится к физическому разрешению принтера. Логическое разрешение, с другой стороны, относится к разрешению, используемому фактическим движком рисования.

Обратите внимание, что если physicalDpiY() не равен logicalDpiY(), соответствующий QPaintEngine должен обрабатывать сопоставление разрешений.

См. также physicalDpiX() и logicalDpiY().

int QPaintDevice::width() const

Возвращает ширину устройства рисования в единицах координат по умолчанию (например, пиксели для QPixmap и QWidget).

См. также widthMM().

int QPaintDevice::widthMM() const

Возвращает ширину устройства рисования в миллиметрах. Из-за ограничений платформы может быть невозможно использовать эту функцию для определения фактического физического размера виджета на экране.

См. также width().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qpaintdevice.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API