Класс 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 для дисплеев с высоким разрешением («ретина»). |
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 для дисплеев с высокой плотностью пикселей «ретина».
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.14/qpaintdevice.html