Класс QPaintDevice
Класс QPaintDevice является базовым классом объектов, на которые можно рисовать с помощью QPainter. Подробнее...
| Заголовок: | #include <QPaintDevice> |
| qmake: | QT += gui |
| Наследуется от: | QGLFramebufferObject, QGLPixelBuffer, QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, QPixmap, QSvgGenerator и QWidget |
Типы публичного доступа
| Перечисление | 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(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().
Документация по функциям-членам
[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(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-5.9/qpaintdevice.html