QPaintDevice Class
La clase QPaintDevice es la clase base de los objetos sobre los que se puede pintar con QPainter. Más...
| Cabecera: | #include <QPaintDevice> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Heredado por: | QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, QPixmap, QSvgGenerator, y QWidget |
- Lista de todos los miembros, incluyendo los heredados
- QPaintDevice es parte de Clases de Pintura.
Tipos Públicos
| enum | PaintDeviceMetric { PdmWidth, PdmHeight, PdmWidthMM, PdmHeightMM, PdmNumColors, …, PdmDevicePixelRatioF_EncodedB } |
Funciones Públicas
| virtual | ~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 |
| virtual QPaintEngine * | paintEngine() const = 0 |
| bool | paintingActive() const |
| int | physicalDpiX() const |
| int | physicalDpiY() const |
| int | width() const |
| int | widthMM() const |
Miembros Públicos Estáticos
(since 6.8) int | encodeMetricF(QPaintDevice::PaintDeviceMetric metric, double value) |
Funciones Protegidas
| QPaintDevice() | |
| virtual int | metric(QPaintDevice::PaintDeviceMetric metric) const |
Descripción Detallada
Un dispositivo de pintura es una abstracción de un espacio bidimensional sobre el que se puede dibujar utilizando un QPainter. Su sistema de coordenadas por defecto tiene su origen situado en la posición superior izquierda. X aumenta hacia la derecha e Y hacia abajo. La unidad es un píxel.
Las capacidades de dibujo de QPaintDevice están actualmente implementadas por las subclases QWidget, QImage, QPixmap, QPicture, y QPrinter.
Para implementar soporte para un nuevo backend, debes derivar de QPaintDevice y reimplementar la función virtual paintEngine() para indicar a QPainter qué motor de pintura debe usarse para dibujar en este dispositivo en particular. Ten en cuenta que también debes crear un motor de pintura correspondiente para poder dibujar en el dispositivo, es decir, derivar de QPaintEngine y reimplementar sus funciones virtuales.
Atención: Qt requiere que exista un objeto QGuiApplication antes de poder crear cualquier dispositivo de pintura. Los dispositivos de pintura acceden a recursos del sistema de ventanas, y estos recursos no se inicializan antes de que se cree un objeto de aplicación.
La clase QPaintDevice proporciona varias funciones que devuelven las distintas métricas del dispositivo: La función depth() devuelve su profundidad de bits (número de planos de bits). La función height() devuelve su altura en unidades del sistema de coordenadas por defecto (por ejemplo, píxeles para QPixmap y QWidget) mientras que heightMM() devuelve la altura del dispositivo en milímetros. Del mismo modo, las funciones width() y widthMM() devuelven la anchura del dispositivo en unidades del sistema de coordenadas por defecto y en milímetros, respectivamente. Alternativamente, puede utilizarse la función protegida metric() para recuperar la información métrica especificando el PaintDeviceMetric deseado como argumento.
Las funciones logicalDpiX() y logicalDpiY() devuelven la resolución horizontal y vertical del dispositivo en puntos por pulgada. Las funciones physicalDpiX() y physicalDpiY() también devuelven la resolución del dispositivo en puntos por pulgada, pero tenga en cuenta que si la resolución lógica y física difieren, la correspondiente QPaintEngine debe gestionar el mapeo. Por último, la función colorCount() devuelve el número de colores diferentes disponibles para el dispositivo de pintura.
Véase también QPaintEngine, QPainter, Sistema de coordenadas y Sistema de pintura.
Documentación de tipos de miembros
enum QPaintDevice::PaintDeviceMetric
Describe las distintas métricas de un dispositivo de pintura.
| Constante | Valor | Descripción |
|---|---|---|
QPaintDevice::PdmWidth | 1 | La anchura del dispositivo de pintura en unidades del sistema de coordenadas por defecto (por ejemplo, píxeles para QPixmap y QWidget). Véase también width(). |
QPaintDevice::PdmHeight | 2 | La altura del dispositivo de pintura en unidades del sistema de coordenadas por defecto (por ejemplo, píxeles para QPixmap y QWidget). Véase también height(). |
QPaintDevice::PdmWidthMM | 3 | La anchura del dispositivo de pintura en milímetros. Véase también widthMM(). |
QPaintDevice::PdmHeightMM | 4 | La altura del dispositivo de pintura en milímetros. Véase también heightMM(). |
QPaintDevice::PdmNumColors | 5 | El número de colores disponibles para el dispositivo de pintura. Véase también colorCount(). |
QPaintDevice::PdmDepth | 6 | La profundidad de bits (número de planos de bits) del dispositivo de pintura. Véase también depth(). |
QPaintDevice::PdmDpiX | 7 | La resolución horizontal del dispositivo en puntos por pulgada. Véase también logicalDpiX(). |
QPaintDevice::PdmDpiY | 8 | La resolución vertical del dispositivo en puntos por pulgada. Véase también logicalDpiY(). |
QPaintDevice::PdmPhysicalDpiX | 9 | La resolución horizontal del dispositivo en puntos por pulgada. Véase también physicalDpiX(). |
QPaintDevice::PdmPhysicalDpiY | 10 | La resolución vertical del dispositivo en puntos por pulgada. Véase también physicalDpiY(). |
QPaintDevice::PdmDevicePixelRatio | 11 | La proporción de píxeles del dispositivo. Los valores habituales son 1 para pantallas de ppp normales y 2 para pantallas "retina" de ppp altos. |
QPaintDevice::PdmDevicePixelRatioScaled | 12 | La proporción de píxeles del dispositivo a escala. Esto es idéntico a PdmDevicePixelRatio, excepto que el valor se escala por un factor constante con el fin de soportar dispositivos de pintura con factores de escala fraccionarios. El factor de escala constante utilizado es devicePixelRatioFScale(). Este valor enum se ha introducido en Qt 5.6. |
QPaintDevice::PdmDevicePixelRatioF_EncodedA (since Qt 6.8) | 13 | Este elemento enum, junto con el elemento B correspondiente, se utilizan juntos para la relación de píxeles del dispositivo, como un valor de coma flotante double codificado. Una subclase de QPaintDevice que admita valores DPR fraccionarios debe implementar la compatibilidad con estos dos elementos enum en su anulación de la función metric(). Se espera que el valor devuelto sea el resultado de la función encodeMetricF(). |
QPaintDevice::PdmDevicePixelRatioF_EncodedB (since Qt 6.8) | 14 | Véase PdmDevicePixelRatioF_EncodedA. |
Véase también metric() y devicePixelRatio().
Documentación de las funciones miembro
[noexcept protected] QPaintDevice::QPaintDevice()
Construye un dispositivo de pintura. Este constructor sólo puede ser invocado desde subclases de QPaintDevice.
[virtual noexcept] QPaintDevice::~QPaintDevice()
Destruye el dispositivo de pintura y libera recursos del sistema de ventanas.
int QPaintDevice::colorCount() const
Devuelve el número de colores diferentes disponibles para el dispositivo de pintura. Si el número de colores disponibles es demasiado grande para ser representado por el tipo de datos int, entonces se devolverá INT_MAX en su lugar.
int QPaintDevice::depth() const
Devuelve la profundidad de bits (número de planos de bits) del dispositivo de pintura.
qreal QPaintDevice::devicePixelRatio() const
Devuelve la proporción de píxeles del dispositivo.
Los valores habituales son 1 para pantallas con ppp normales y 2 para pantallas "retina" con ppp altos.
qreal QPaintDevice::devicePixelRatioF() const
Devuelve la proporción de píxeles del dispositivo como un número de coma flotante.
[static, since 6.8] int QPaintDevice::encodeMetricF(QPaintDevice::PaintDeviceMetric metric, double value)
Devuelve value codificado para la métrica metric. Las subclases que implementen metric() deben utilizar esta función para codificar
| Constante | Descripción |
|---|---|
as | un valor de retorno entero cuando la métrica de consulta especifica un valor de punto flotante codificado. |
Esta función se introdujo en Qt 6.8.
int QPaintDevice::height() const
Devuelve la altura del dispositivo de pintura en unidades del sistema de coordenadas predeterminado (por ejemplo, píxeles para QPixmap y QWidget).
Véase también heightMM().
int QPaintDevice::heightMM() const
Devuelve la altura del dispositivo de pintura en milímetros. Debido a las limitaciones de la plataforma, puede que no sea posible utilizar esta función para determinar el tamaño físico real de un widget en la pantalla.
Véase también height().
int QPaintDevice::logicalDpiX() const
Devuelve la resolución horizontal del dispositivo en puntos por pulgada, que se utiliza para calcular el tamaño de las fuentes. Para X11, suele ser la misma que podría calcularse a partir de widthMM().
Tenga en cuenta que si logicalDpiX() no es igual a physicalDpiX(), el correspondiente QPaintEngine debe manejar el mapeo de resolución.
Véase también logicalDpiY() y physicalDpiX().
int QPaintDevice::logicalDpiY() const
Devuelve la resolución vertical del dispositivo en puntos por pulgada, que se utiliza para calcular el tamaño de las fuentes. Para X11, suele ser la misma que podría calcularse a partir de heightMM().
Tenga en cuenta que si logicalDpiY() no es igual a physicalDpiY(), el correspondiente QPaintEngine debe manejar el mapeo de la resolución.
Véase también logicalDpiX() y physicalDpiY().
[virtual protected] int QPaintDevice::metric(QPaintDevice::PaintDeviceMetric metric) const
Devuelve la información métrica del dispositivo de pintura dado metric.
Véase también PaintDeviceMetric.
[pure virtual] QPaintEngine *QPaintDevice::paintEngine() const
Devuelve un puntero al motor de pintura utilizado para dibujar en el dispositivo.
bool QPaintDevice::paintingActive() const
Devuelve true si el dispositivo está siendo pintado actualmente, es decir, alguien ha llamado a QPainter::begin() pero aún no ha llamado a QPainter::end() para este dispositivo; en caso contrario devuelve false.
Véase también QPainter::isActive().
int QPaintDevice::physicalDpiX() const
Devuelve la resolución horizontal del dispositivo en puntos por pulgada. Por ejemplo, al imprimir, esta resolución se refiere a la resolución física de la impresora. El DPI lógico, por otro lado, se refiere a la resolución utilizada por el motor de pintura real.
Tenga en cuenta que si physicalDpiX() no es igual a logicalDpiX(), el correspondiente QPaintEngine debe manejar el mapeo de la resolución.
Véase también physicalDpiY() y logicalDpiX().
int QPaintDevice::physicalDpiY() const
Devuelve la resolución horizontal del dispositivo en puntos por pulgada. Por ejemplo, al imprimir, esta resolución se refiere a la resolución física de la impresora. El DPI lógico, por otro lado, se refiere a la resolución utilizada por el motor de pintura real.
Tenga en cuenta que si el valor de physicalDpiY() no es igual al de logicalDpiY(), el correspondiente QPaintEngine debe encargarse del mapeo de la resolución.
Véase también physicalDpiX() y logicalDpiY().
int QPaintDevice::width() const
Devuelve la anchura del dispositivo de pintura en unidades del sistema de coordenadas predeterminado (por ejemplo, píxeles para QPixmap y QWidget).
Véase también widthMM().
int QPaintDevice::widthMM() const
Devuelve la anchura del dispositivo de pintura en milímetros. Debido a las limitaciones de la plataforma, puede que no sea posible utilizar esta función para determinar el tamaño físico real de un widget en la pantalla.
Véase también width().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.