Класс QPaintDevice
Класс QPaintDevice — базовый класс объектов, на которые можно рисовать с помощью QPainter. Подробнее...
| Заголовок: | #include <QPaintDevice> |
| qmake: | QT += gui |
| Наследуется от: | QGLFramebufferObject, QGLPixelBuffer, QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, QPixmap, QSvgGenerator и QWidget |
Открытые типы
| Перечисление | PaintDeviceMetric { PdmWidth, PdmHeight, PdmWidthMM, PdmHeightMM, PdmNumColors, …, PdmDevicePixelRatioScaled } |
Открытые функции
| виртуальный | ~QPaintDevice() |
| int | colorCount() const |
| int | depth() const |
| int | 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, QGLPixelBuffer, 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() и devicePixelRatioF().
Документация по функциям членов
[protected] QPaintDevice::QPaintDevice()
Создаёт устройство рисования. Этот конструктор может быть вызван только из подклассов QPaintDevice.
[virtual] QPaintDevice::~QPaintDevice()
Уничтожает устройство рисования и освобождает ресурсы системы окон.
int QPaintDevice::colorCount() const
Возвращает количество различных цветов, доступных для устройства рисования. Если количество доступных цветов слишком велико, чтобы быть представлено типом данных int, то возвращается INT_MAX.
int QPaintDevice::depth() const
Возвращает разрядность устройства рисования (количество битовых плоскостей).
int QPaintDevice::devicePixelRatio() const
Возвращает коэффициент масштаба пикселей устройства.
Общие значения — 1 для дисплеев с обычной плотностью пикселей и 2 для дисплеев с высокой плотностью пикселей «retina».
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
Возвращает горизонтальное разрешение устройства в точках на дюйм. Например, при печати это разрешение относится к физическому разрешению принтера. Логическое разрешение DPI, с другой стороны, относится к разрешению, используемому фактическим движком рисования.
Обратите внимание, что если physicalDpiX() не равен logicalDpiX(), соответствующий QPaintEngine должен обрабатывать отображение разрешения.
См. также physicalDpiY() и logicalDpiX().
int QPaintDevice::physicalDpiY() const
Возвращает горизонтальное разрешение устройства в точках на дюйм. Например, при печати это разрешение относится к физическому разрешению принтера. Логическое разрешение DPI, с другой стороны, относится к разрешению, используемому фактическим движком рисования.
Обратите внимание, что если 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-5.15/qpaintdevice.html