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