Класс 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 |
Подробное описание
Класс 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().
END_OF_DOCUMENT_MARKER ```Документация функций-членов
[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/archives/qt-5.11/qpaintdevice.html