Dispositivos de Pintura y Backends
Creación de un dispositivo de pintura
La clase QPaintDevice es la clase base de los objetos que se pueden pintar, es decir, QPainter puede dibujar sobre cualquier subclase de QPaintDevice. QPaintDevice Las capacidades de dibujo de QPrinter están, entre otras, implementadas por QWidget, QImage, QPixmap, QPicture, , y QOpenGLPaintDevice.
| Widget La clase QWidget es la clase base de los elementos de la interfaz de usuario en el módulo Qt Widgets módulo. Recibe eventos de ratón, teclado y otros del sistema de ventanas, y pinta una representación de sí mismo en la pantalla. |
| Imagen La clase QImage proporciona una representación de imagen independiente del hardware que está diseñada y optimizada para E/S, y para el acceso y manipulación directa de píxeles. QImage soporta varios formatos de imagen, incluyendo imágenes monocromáticas, de 8 bits, 32 bits y con mezcla alfa. Una ventaja de utilizar QImage como dispositivo de pintura es que es posible garantizar la exactitud de píxel de cualquier operación de dibujo de forma independiente de la plataforma. Otra ventaja es que la pintura puede realizarse en un subproceso distinto del subproceso actual de la interfaz gráfica de usuario. |
| Mapa de píxeles La clase QPixmap es una representación de imágenes fuera de pantalla que está diseñada y optimizada para mostrar imágenes en pantalla. A diferencia de QImage, los datos de píxeles de un mapa de píxeles son internos y los gestiona el sistema de ventanas subyacente, es decir, sólo se puede acceder a los píxeles a través de las funciones de QPainter o convirtiendo QPixmap en QImage. Para optimizar el dibujo con QPixmap, Qt proporciona la clase QPixmapCache que puede utilizarse para almacenar pixmaps temporales que son caros de generar sin utilizar más espacio de almacenamiento que el límite de la caché. Qt también proporciona la clase de conveniencia QBitmap, que hereda de QPixmap. QBitmap garantiza pixmaps monocromáticos (1 bit de profundidad), y se utiliza principalmente para crear objetos QCursor y QBrush personalizados, construyendo objetos QRegion. |
| Dispositivo de pintura OpenGL Como se ha mencionado anteriormente, Qt ofrece clases que facilitan el uso de OpenGL en aplicaciones Qt. Por ejemplo, QOpenGLPaintDevice habilita la API OpenGL para renderizar con QPainter. |
| Imagen La clase QPicture es un dispositivo de pintado que graba y reproduce los comandos de QPainter. Una imagen serializa los comandos del pintor a un dispositivo IO en un formato independiente de la plataforma. QPicture también es independiente de la resolución, es decir, un QPicture puede mostrarse en diferentes dispositivos (por ejemplo svg, pdf, ps, impresora y pantalla) con el mismo aspecto. Qt proporciona las funciones QPicture::load() y QPicture::save(), así como operadores de streaming para cargar y guardar imágenes. |
| Backends personalizados El soporte para un nuevo backend puede implementarse derivando de la clase QPaintDevice y reimplementando la función virtual QPaintDevice::paintEngine() para indicar a QPainter qué motor de pintura debe utilizarse para dibujar en este dispositivo en particular. Para poder dibujar realmente en el dispositivo, este motor de pintura debe ser un motor de pintura personalizado creado derivando de la clase QPaintEngine. |
© 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.