Класс QPaintDevice
Класс QPaintDevice является базовым классом объектов, на которых можно рисовать с помощью QPainter. Подробнее...
| Заголовок: | #include <QPaintDevice> |
| qmake: | QT += gui |
| Наследуется от: | QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture и QPixmap |
Типы публичного доступа
| Перечисление | PaintDeviceMetric { PdmWidth, PdmHeight, PdmWidthMM, PdmHeightMM, ..., 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 |
Защищённые переменные
| ushort | painters |
Подробное описание
Класс QPaintDevice является базовым классом объектов, на которых можно рисовать с помощью QPainter.
Устройство рисования представляет собой абстракцию двумерного пространства, на котором можно рисовать с помощью 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.12/qpaintdevice.html