QPainter Class
La clase QPainter realiza pintado de bajo nivel en widgets y otros dispositivos de pintado. Más...
| Cabecera: | #include <QPainter> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Heredado Por: |
- Lista de todos los miembros, incluyendo los heredados
- QPainter es parte de Clases de Pintura.
Nota: Todas las funciones de esta clase son reentrantes.
Tipos Públicos
| class | PixmapFragment |
| enum | CompositionMode { CompositionMode_SourceOver, CompositionMode_DestinationOver, CompositionMode_Clear, CompositionMode_Source, CompositionMode_Destination, …, RasterOp_SourceOrNotDestination } |
| enum | PixmapFragmentHint { OpaqueHint } |
| flags | PixmapFragmentHints |
| enum | RenderHint { Antialiasing, TextAntialiasing, SmoothPixmapTransform, VerticalSubpixelPositioning, LosslessImageRendering, NonCosmeticBrushPatterns } |
| flags | RenderHints |
Funciones Públicas
| QPainter() | |
| QPainter(QPaintDevice *dispositivo) | |
| ~QPainter() | |
| const QBrush & | background() const |
| Qt::BGMode | backgroundMode() const |
| bool | begin(QPaintDevice *dispositivo) |
| void | beginNativePainting() |
| QRectF | boundingRect(const QRectF &rectangle, int flags, const QString &text) |
| QRect | boundingRect(const QRect &rectangle, int flags, const QString &text) |
| QRectF | boundingRect(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption()) |
| QRect | boundingRect(int x, int y, int w, int h, int flags, const QString &text) |
| const QBrush & | brush() const |
| QPunto | brushOrigin() const |
(since 6.11) QPointF | brushOriginF() const |
| QRectF | clipBoundingRect() const |
| QPainterPath | clipPath() const |
| QRegión | clipRegion() const |
| QTransformar | combinedTransform() const |
| QPainter::CompositionMode | compositionMode() const |
| QPaintDevice * | device() const |
| const QTransform & | deviceTransform() const |
| void | drawArc(const QRectF &rectangle, int startAngle, int spanAngle) |
| void | drawArc(const QRect &rectangle, int startAngle, int spanAngle) |
| void | drawArc(int x, int y, int anchura, int altura, int ánguloinicial, int ángulointervalo) |
| void | drawChord(const QRectF &rectangle, int startAngle, int spanAngle) |
| void | drawChord(const QRect &rectangle, int startAngle, int spanAngle) |
| void | drawChord(int x, int y, int anchura, int altura, int ánguloinicial, int ángulointervalo) |
| void | drawConvexPolygon(const QPointF *points, int pointCount) |
| void | drawConvexPolygon(const QPolygon &polygon) |
| void | drawConvexPolygon(const QPolygonF &polygon) |
| void | drawConvexPolygon(const QPoint *points, int pointCount) |
| void | drawEllipse(const QRectF &rectangle) |
| void | drawEllipse(const QRect &rectangle) |
| void | drawEllipse(const QPoint ¢er, int rx, int ry) |
| void | drawEllipse(const QPointF ¢er, qreal rx, qreal ry) |
| void | drawEllipse(int x, int y, int anchura, int altura) |
| void | drawGlyphRun(const QPointF &position, const QGlyphRun &glyphs) |
| void | drawImage(const QRectF &target, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawImage(const QPoint &point, const QImage &image) |
| void | drawImage(const QPointF &point, const QImage &image) |
| void | drawImage(const QRect &rectangle, const QImage &image) |
| void | drawImage(const QRectF &rectangle, const QImage &image) |
| void | drawImage(const QPoint &point, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawImage(const QPointF &point, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawImage(const QRect &target, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawImage(int x, int y, const QImage &image, int sx = 0, int sy = 0, int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor) |
| void | drawLine(const QLineF &line) |
| void | drawLine(const QLine &line) |
| void | drawLine(const QPoint &p1, const QPoint &p2) |
| void | drawLine(const QPointF &p1, const QPointF &p2) |
| void | drawLine(int x1, int y1, int x2, int y2) |
| void | drawLines(const QLineF *lines, int lineCount) |
| void | drawLines(const QList<QLine> &lines) |
| void | drawLines(const QList<QLineF> &lines) |
| void | drawLines(const QList<QPoint> &pointPairs) |
| void | drawLines(const QList<QPointF> &pointPairs) |
| void | drawLines(const QLine *lines, int lineCount) |
| void | drawLines(const QPoint *pointPairs, int lineCount) |
| void | drawLines(const QPointF *pointPairs, int lineCount) |
| void | drawPath(const QPainterPath &path) |
| void | drawPicture(const QPointF &point, const QPicture &picture) |
| void | drawPicture(const QPoint &point, const QPicture &picture) |
| void | drawPicture(int x, int y, const QPicture &picture) |
| void | drawPie(const QRectF &rectangle, int startAngle, int spanAngle) |
| void | drawPie(const QRect &rectangle, int startAngle, int spanAngle) |
| void | drawPie(int x, int y, int anchura, int altura, int ánguloinicial, int ángulointervalo) |
| void | drawPixmap(const QRectF &target, const QPixmap &pixmap, const QRectF &source) |
| void | drawPixmap(const QPoint &point, const QPixmap &pixmap) |
| void | drawPixmap(const QPointF &point, const QPixmap &pixmap) |
| void | drawPixmap(const QRect &rectangle, const QPixmap &pixmap) |
| void | drawPixmap(const QPoint &point, const QPixmap &pixmap, const QRect &source) |
| void | drawPixmap(const QPointF &point, const QPixmap &pixmap, const QRectF &source) |
| void | drawPixmap(const QRect &target, const QPixmap &pixmap, const QRect &source) |
| void | drawPixmap(int x, int y, const QPixmap &pixmap) |
| void | drawPixmap(int x, int y, int anchura, int altura, const QPixmap &pixmap) |
| void | drawPixmap(int x, int y, const QPixmap &pixmap, int sx, int sy, int sw, int sh) |
| void | drawPixmap(int x, int y, int w, int h, const QPixmap &pixmap, int sx, int sy, int sw, int sh) |
| void | drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap, QPainter::PixmapFragmentHints hints = PixmapFragmentHints()) |
| void | drawPoint(const QPointF &position) |
| void | drawPoint(const QPoint &position) |
| void | drawPoint(int x, int y) |
| void | drawPoints(const QPointF *points, int pointCount) |
| void | drawPoints(const QPolygon &points) |
| void | drawPoints(const QPolygonF &points) |
| void | drawPoints(const QPoint *points, int pointCount) |
| void | drawPolygon(const QPointF *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill) |
| void | drawPolygon(const QPolygon &points, Qt::FillRule fillRule = Qt::OddEvenFill) |
| void | drawPolygon(const QPolygonF &points, Qt::FillRule fillRule = Qt::OddEvenFill) |
| void | drawPolygon(const QPoint *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill) |
| void | drawPolyline(const QPointF *points, int pointCount) |
| void | drawPolyline(const QPolygon &points) |
| void | drawPolyline(const QPolygonF &points) |
| void | drawPolyline(const QPoint *points, int pointCount) |
| void | drawRect(const QRectF &rectangle) |
| void | drawRect(const QRect &rectangle) |
| void | drawRect(int x, int y, int anchura, int altura) |
| void | drawRects(const QRectF *rectangles, int rectCount) |
| void | drawRects(const QList<QRect> &rectangles) |
| void | drawRects(const QList<QRectF> &rectangles) |
| void | drawRects(const QRect *rectangles, int rectCount) |
| void | drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize) |
| void | drawRoundedRect(const QRect &rect, qreal xRadio, qreal yRadio, Qt::SizeMode mode = Qt::AbsoluteSize) |
| void | drawRoundedRect(int x, int y, int w, int h, qreal xRadio, qreal yRadio, Qt::SizeMode mode = Qt::AbsoluteSize) |
| void | drawStaticText(const QPointF &topLeftPosition, const QStaticText &staticText) |
| void | drawStaticText(const QPoint &topLeftPosition, const QStaticText &staticText) |
| void | drawStaticText(int izquierda, int arriba, const QStaticText &staticText) |
| void | drawText(const QPointF &position, const QString &text) |
| void | drawText(const QPoint &position, const QString &text) |
| void | drawText(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption()) |
| void | drawText(int x, int y, const QString &text) |
| void | drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect = nullptr) |
| void | drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect = nullptr) |
| void | drawText(int x, int y, int anchura, int altura, int flags, const QString &text, QRect *boundingRect = nullptr) |
| void | drawTiledPixmap(const QRectF &rectangle, const QPixmap &pixmap, const QPointF &position = QPointF()) |
| void | drawTiledPixmap(const QRect &rectangle, const QPixmap &pixmap, const QPoint &position = QPoint()) |
| void | drawTiledPixmap(int x, int y, int anchura, int altura, const QPixmap &pixmap, int sx = 0, int sy = 0) |
| bool | end() |
| void | endNativePainting() |
| void | eraseRect(const QRectF &rectangle) |
| void | eraseRect(const QRect &rectangle) |
| void | eraseRect(int x, int y, int anchura, int altura) |
| void | fillPath(const QPainterPath &path, const QBrush &brush) |
| void | fillRect(const QRectF &rectangle, const QBrush &brush) |
| void | fillRect(const QRect &rectangle, QGradient::Preset preset) |
| void | fillRect(const QRect &rectangle, Qt::BrushStyle style) |
| void | fillRect(const QRect &rectangle, Qt::GlobalColor color) |
| void | fillRect(const QRect &rectangle, const QBrush &brush) |
| void | fillRect(const QRect &rectangle, const QColor &color) |
| void | fillRect(const QRectF &rectangle, QGradient::Preset preset) |
| void | fillRect(const QRectF &rectangle, Qt::BrushStyle style) |
| void | fillRect(const QRectF &rectangle, Qt::GlobalColor color) |
| void | fillRect(const QRectF &rectangle, const QColor &color) |
| void | fillRect(int x, int y, int anchura, int altura, QGradient::Preset preset) |
| void | fillRect(int x, int y, int anchura, int altura, Qt::BrushStyle estilo) |
| void | fillRect(int x, int y, int anchura, int altura, Qt::GlobalColor color) |
| void | fillRect(int x, int y, int anchura, int altura, const QBrush &brush) |
| void | fillRect(int x, int y, int anchura, int altura, const QColor &color) |
| const QFont & | font() const |
| QFontInfo | fontInfo() const |
| QFontMetrics | fontMetrics() const |
| bool | hasClipping() const |
| bool | isActive() const |
| Qt::DirecciónDisposición | layoutDirection() const |
| qreal | opacity() const |
| QPaintEngine * | paintEngine() const |
| const QPen & | pen() const |
| QPainter::RenderHints | renderHints() const |
| void | resetTransform() |
| void | restore() |
| void | rotate(qreal ángulo) |
| void | save() |
| void | scale(qreal sx, qreal sy) |
| void | setBackground(const QBrush &brush) |
| void | setBackgroundMode(Qt::BGMode mode) |
| void | setBrush(const QBrush &brush) |
(since 6.11) void | setBrush(QBrush &&brush) |
(since 6.9) void | setBrush(QColor color) |
| void | setBrush(Qt::BrushStyle estilo) |
(since 6.9) void | setBrush(Qt::GlobalColor color) |
| void | setBrushOrigin(const QPointF &position) |
| void | setBrushOrigin(const QPoint &position) |
| void | setBrushOrigin(int x, int y) |
| void | setClipPath(const QPainterPath &path, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipRect(const QRectF &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipRect(int x, int y, int anchura, int altura, Qt::ClipOperation operación = Qt::ReplaceClip) |
| void | setClipRect(const QRect &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipRegion(const QRegion ®ion, Qt::ClipOperation operation = Qt::ReplaceClip) |
| void | setClipping(bool enable) |
| void | setCompositionMode(QPainter::CompositionMode modo) |
| void | setFont(const QFont &font) |
| void | setLayoutDirection(Qt::LayoutDirection direction) |
| void | setOpacity(qreal opacity) |
| void | setPen(const QPen &pen) |
(since 6.11) void | setPen(QPen &&pen) |
| void | setPen(Qt::PenStyle estilo) |
| void | setPen(const QColor &color) |
| void | setRenderHint(QPainter::RenderHint hint, bool on = true) |
| void | setRenderHints(QPainter::RenderHints hints, bool on = true) |
| void | setTransform(const QTransform &transform, bool combine = false) |
| void | setViewTransformEnabled(bool enable) |
| void | setViewport(const QRect &rectangle) |
| void | setViewport(int x, int y, int anchura, int altura) |
| void | setWindow(const QRect &rectangle) |
| void | setWindow(int x, int y, int anchura, int altura) |
| void | setWorldMatrixEnabled(bool enable) |
| void | setWorldTransform(const QTransform &matrix, bool combine = false) |
| void | shear(qreal sh, qreal sv) |
| void | strokePath(const QPainterPath &path, const QPen &pen) |
| bool | testRenderHint(QPainter::RenderHint hint) const |
| const QTransform & | transform() const |
| void | translate(const QPointF &offset) |
| void | translate(const QPoint &offset) |
| void | translate(qreal dx, qreal dy) |
| bool | viewTransformEnabled() const |
| QRect | viewport() const |
| QRect | window() const |
| bool | worldMatrixEnabled() const |
| const QTransform & | worldTransform() const |
Descripción Detallada
QPainter proporciona funciones altamente optimizadas para hacer la mayoría de los dibujos que requieren los programas GUI. Puede dibujar de todo, desde líneas simples a formas complejas como tartas y acordes. También puede dibujar texto alineado y pixmaps. Normalmente, dibuja en un sistema de coordenadas "natural", pero también puede realizar transformaciones de vista y de mundo. QPainter puede operar sobre cualquier objeto que herede la clase QPaintDevice.
El uso común de QPainter es dentro del evento paint de un widget: Construir y personalizar (por ejemplo, establecer la pluma o el pincel) el pintor. Luego dibuja. Recuerda destruir el objeto QPainter después de dibujar. Por ejemplo:
void SimpleExampleWidget::paintEvent(QPaintEvent *) { QPainter painter(this); painter.setPen(Qt::blue); painter.setFont(QFont("Arial", 30)); painter.drawText(rect(), Qt::AlignCenter, "Qt"); }
La funcionalidad principal de QPainter es dibujar, pero la clase también proporciona varias funciones que le permiten personalizar la configuración de QPainter y su calidad de renderizado, y otras que permiten el recorte. Además, se puede controlar cómo se fusionan diferentes formas especificando el modo de composición del pintor.
La función isActive() indica si el pintor está activo. Un pintor se activa mediante la función begin() y el constructor que toma un argumento QPaintDevice. La función end() y el destructor lo desactivan.
Junto con las clases QPaintDevice y QPaintEngine, QPainter forma la base del sistema de pintado de Qt. QPainter es la clase utilizada para realizar operaciones de dibujo. QPaintDevice representa un dispositivo sobre el que se puede pintar utilizando un QPainter. QPaintEngine proporciona la interfaz que el pintor utiliza para dibujar sobre diferentes tipos de dispositivos. Si el pintor está activo, device() devuelve el dispositivo de pintura sobre el que pinta el pintor, y paintEngine() devuelve el motor de pintura en el que está operando actualmente el pintor. Para más información, consulte el Sistema de pintura.
A veces es deseable hacer que otra persona pinte en un QPaintDevice inusual. QPainter soporta una función estática para hacer esto, setRedirected().
Advertencia: Cuando el paintdevice es un widget, QPainter sólo puede usarse dentro de una función paintEvent() o en una función llamada por paintEvent().
Ajustes
Hay varios ajustes que puedes personalizar para hacer que QPainter dibuje según tus preferencias:
- font() es la fuente utilizada para dibujar texto. Si el pintor isActive(), puede recuperar información sobre la fuente actualmente configurada, y sus métricas, usando las funciones fontInfo() y fontMetrics() respectivamente.
- brush() define el color o el patrón que se utiliza para rellenar las formas.
- pen() define el color o punteado que se utiliza para dibujar líneas o límites.
- backgroundMode() define si existe o no background(), es decir, si es Qt::OpaqueMode o Qt::TransparentMode.
- background() sólo se aplica cuando backgroundMode() es Qt::OpaqueMode y pen() es un punteado. En ese caso, describe el color de los píxeles de fondo del punteado.
- brushOrigin() define el origen de los pinceles en mosaico, normalmente el origen del fondo del widget.
- viewport(), window(), worldTransform() conforman el sistema de transformación de coordenadas del pintor. Para más información, consulte la sección Coordinate Transformations y la documentación sobre el sistema de co ordenadas.
- hasClipping() indica si el pintor recorta. (Si el pintor recorta, lo hace en clipRegion().
- layoutDirection() define la dirección de trazado utilizada por el pintor al dibujar texto.
- worldMatrixEnabled() indica si la transformación global está activada.
- viewTransformEnabled() indica si está activada la transformación de la vista.
Tenga en cuenta que algunas de estas opciones reflejan las opciones de algunos dispositivos de pintura, por ejemplo QWidget::font(). La función QPainter::begin() (o equivalentemente el constructor QPainter) copia estos atributos del dispositivo de pintura.
En cualquier momento puedes guardar el estado del QPainter llamando a la función save() que guarda todos los ajustes disponibles en una pila interna. La función restore() los recupera.
Dibujar
QPainter proporciona funciones para dibujar la mayoría de las primitivas: drawPoint(), drawPoints(), drawLine(), drawRect(), drawRoundedRect(), drawEllipse(), drawArc(), drawPie(), drawChord(), drawPolyline(), drawPolygon(), drawConvexPolygon() y drawCubicBezier(). Las dos funciones de conveniencia, drawRects() y drawLines(), dibujan el número dado de rectángulos o líneas en la matriz dada de QRects o QLines utilizando la pluma y el pincel actuales.
La clase QPainter también proporciona la función fillRect() que rellena el QRect dado, con el QBrush dado, y la función eraseRect() que borra el área dentro del rectángulo dado.
Todas estas funciones tienen versiones tanto en números enteros como en coma flotante.
![]() | Ejemplo de Dibujo Básico El ejemplo de Dibujo Básico muestra como mostrar primitivas gráficas básicas en una variedad de estilos usando la clase QPainter. |
Si necesitas dibujar una forma compleja, especialmente si necesitas hacerlo repetidamente, considera crear un QPainterPath y dibujarlo usando drawPath().
| Ejemplo de trayectorias de pintor La clase QPainterPath proporciona un contenedor para operaciones de pintado, permitiendo construir y reutilizar formas gráficas. El ejemplo Painter Path s muestra cómo se pueden utilizar las rutas de pintado para construir formas complejas para el renderizado. | ![]() |
QPainter también proporciona la función fillPath() que rellena el QPainterPath dado con el QBrush dado , y la función strokePath() que dibuja el contorno del trazado dado (es decir, traza el trazado).
Ver también el ejemplo de Deformación Vectorial que muestra cómo usar técnicas vectoriales avanzadas para dibujar texto usando QPainterPath, el ejemplo de Gradientes que muestra los diferentes tipos de gradientes que están disponibles en Qt, y el ejemplo de Trazado de Trazos que muestra los patrones de trazos incorporados en Qt y muestra cómo pueden usarse patrones personalizados para ampliar el rango de patrones disponibles.
El dibujo de texto se realiza mediante drawText(). Cuando necesite un posicionamiento preciso, boundingRect() le indica dónde dibujará un determinado comando drawText().
Dibujar mapas de píxeles e imágenes
Existen funciones para dibujar pixmaps/imágenes, a saber drawPixmap(), drawImage() y drawTiledPixmap(). Tanto drawPixmap() como drawImage() producen el mismo resultado, excepto que drawPixmap() es más rápido en pantalla mientras que drawImage() puede ser más rápido en un QPrinter u otros dispositivos.
Existe una función drawPicture() que dibuja el contenido de un QPicture entero. La función drawPicture() es la única que ignora todos los ajustes del pintor, ya que QPicture tiene sus propios ajustes.
Dibujar versiones de alta resolución de mapas de píxeles e imágenes
Las versiones de alta resolución de los mapas de píxeles tienen un valor de relación de píxeles del dispositivo superior a 1 (véase QImageReader, QPixmap::devicePixelRatio()). Si coincide con el valor del mapa subyacente QPaintDevice, se dibuja directamente en el dispositivo sin aplicar ninguna transformación adicional.
Este es el caso, por ejemplo, cuando se dibuja un QPixmap de 64x64 píxeles de tamaño con una relación de píxeles del dispositivo de 2 en una pantalla de alto DPI que también tiene una relación de píxeles del dispositivo de 2. Tenga en cuenta que el mapa de píxeles es entonces efectivamente 32x32 píxeles en el espacio de usuario. Las rutas de código en Qt que calculan la geometría del diseño basándose en el tamaño del mapa de píxeles utilizarán este tamaño. El efecto neto de esto es que el mapa de píxeles se muestra como un mapa de píxeles de alto DPI en lugar de un mapa de píxeles grande.
Calidad de renderizado
Para obtener un resultado de renderizado óptimo usando QPainter, deberías usar la plataforma independiente QImage como dispositivo de pintura; es decir, usando QImage te asegurarás de que el resultado tiene una representación de píxeles idéntica en cualquier plataforma.
La clase QPainter también proporciona un medio para controlar la calidad de renderizado a través de su enum RenderHint y el soporte para precisión en coma flotante: Todas las funciones para dibujar primitivas tienen versiones de coma flotante.
painter.drawEllipse(QRectF(-diameter / 2.0, -diameter / 2.0, diameter, diameter));
A menudo se utilizan en combinación con la sugerencia de renderizado QPainter::Antialiasing.
| Comparación de círculos concéntricos con int y float, y con o sin renderizado anti-aliasing. Utilizando las versiones de precisión en coma flotante se obtienen círculos uniformemente espaciados. El renderizado con antialiasing produce círculos suaves. | ![]() |
El enum RenderHint especifica banderas a QPainter que pueden o no ser respetadas por cualquier motor dado. QPainter::Antialiasing indica que el motor debe antialiasear bordes de primitivas si es posible, QPainter::TextAntialiasing indica que el motor debe antialiasear texto si es posible, y QPainter::SmoothPixmapTransform indica que el motor debe usar un algoritmo de transformación de pixmap suave.
La función renderHints() devuelve una bandera que especifica las sugerencias de renderizado que se han establecido para este pintor. Utilice la función setRenderHint() para activar o desactivar RenderHints.
Transformaciones de coordenadas
Normalmente, el QPainter opera en el propio sistema de coordenadas del dispositivo (normalmente píxeles), pero QPainter tiene un buen soporte para transformaciones de coordenadas.
Las transformaciones más utilizadas son la escala, la rotación, la traslación y la cizalladura. Utilice la función scale() para escalar el sistema de coordenadas en un desplazamiento dado, la función rotate() para rotarlo en el sentido de las agujas del reloj y translate() para trasladarlo (es decir, añadiendo un desplazamiento dado a los puntos). También puede girar el sistema de coordenadas alrededor del origen utilizando la función shear(). Vea el ejemplo de Transformaciones Afines para una visualización de un sistema de coordenadas torcido.
Vea también el ejemplo Transformaciones que muestra cómo las transformaciones influyen en la forma en que QPainter renderiza las primitivas gráficas. En particular, muestra cómo el orden de las transformaciones afecta al resultado.
| Ejemplo de Transformaciones Afines El ejemplo de Transformaciones Af ines muestra la capacidad de Qt para realizar transformaciones afines en operaciones de pintado. La demo también permite al usuario experimentar con las operaciones de transformación y ver los resultados inmediatamente. | ![]() |
Todas las operaciones de transformación operan sobre la transformación worldTransform(). Una matriz transforma un punto del plano en otro punto. Para más información sobre la matriz de transformación, consulte la documentación sobre el sistema de coordenadas y QTransform.
La función setWorldTransform() puede reemplazar o añadir a la actual worldTransform(). La función resetTransform() restablece las transformaciones realizadas con las funciones translate(), scale(), shear(), rotate(), setWorldTransform(), setViewport() y setWindow(). La función deviceTransform() devuelve la matriz que transforma de coordenadas lógicas a coordenadas del dispositivo de pintura dependiente de la plataforma. Esta última función sólo es necesaria cuando se utilizan comandos de pintura de la plataforma en el manejador dependiente de la plataforma, y la plataforma no realiza transformaciones de forma nativa.
Cuando dibujamos con QPainter, especificamos puntos usando coordenadas lógicas que luego se convierten en coordenadas físicas del dispositivo de pintura. El mapeo de las coordenadas lógicas a las coordenadas físicas son manejadas por combinedTransform() de QPainter, una combinación de viewport() y window() y worldTransform(). El viewport() representa las coordenadas físicas especificando un rectángulo arbitrario, el window() describe el mismo rectángulo en coordenadas lógicas, y el worldTransform() es idéntico a la matriz de transformación.
Véase también Sistema de coordenadas
Recorte
QPainter puede recortar cualquier operación de dibujo a un rectángulo, una región o un trazado vectorial. El recorte actual está disponible mediante las funciones clipRegion() y clipPath(). Si se prefieren las rutas o las regiones (más rápido) depende del motor de pintura subyacente paintEngine(). Por ejemplo, el motor de pintura QImage prefiere rutas mientras que el motor de pintura X11 prefiere regiones. Establecer un clip se hace en las coordenadas lógicas del pintor.
Después del recorte de QPainter, el dispositivo de pintura también puede recortar. Por ejemplo, la mayoría de los widgets recortan los píxeles utilizados por los widgets hijos, y la mayoría de las impresoras recortan un área cerca de los bordes del papel. Este recorte adicional no se refleja en el valor de retorno de clipRegion() o hasClipping().
Modos de composición
QPainter proporciona el enum CompositionMode que define las reglas Porter-Duff para la composición de imágenes digitales; describe un modelo para combinar los píxeles de una imagen, la fuente, con los píxeles de otra imagen, el destino.
Las dos formas más comunes de composición son Source y SourceOver. Source se utiliza para dibujar objetos opacos en un dispositivo de pintura. En este modo, cada píxel del origen sustituye al píxel correspondiente del destino. En el modo de composición SourceOver, el objeto de origen es transparente y se dibuja encima del de destino.
Tenga en cuenta que la transformación de composición funciona en función de los píxeles. Por este motivo, existe una diferencia entre utilizar la propia primitiva gráfica y su rectángulo delimitador: El rectángulo delimitador contiene píxeles con alfa == 0 (es decir, los píxeles que rodean la primitiva). Estos píxeles sobrescribirán los píxeles de la otra imagen, borrándolos, mientras que la primitiva sólo sobrescribe su propia área.
![]() | Ejemplo de modos de composición El ejemplo de Modos de Composición, disponible en el directorio de ejemplos de Qt, le permite experimentar con los distintos modos de composición y ver los resultados inmediatamente. |
Limitaciones
Si está utilizando coordenadas con el motor de pintura basado en raster de Qt, es importante tener en cuenta que, aunque se pueden utilizar coordenadas superiores a +/-215, no se garantiza que se muestre cualquier pintura realizada con coordenadas fuera de este rango; el dibujo puede aparecer recortado. Esto se debe al uso de short int en la implementación.
Los contornos generados por el stroker de Qt son sólo una aproximación cuando se trata de formas curvas. En la mayoría de los casos es imposible representar el contorno de un segmento de curva bezier utilizando otro segmento de curva bezier, por lo que Qt aproxima los contornos de las curvas utilizando varias curvas más pequeñas. Por razones de rendimiento hay un límite en el número de curvas que Qt utiliza para estos contornos, y por lo tanto cuando se utilizan grandes anchos o escalas de lápiz el error de contorno aumenta. Para generar contornos con errores menores es posible utilizar la clase QPainterPathStroker, que tiene la función miembro setCurveThreshold que permite al usuario especificar la tolerancia de error. Otra solución es convertir primero los trazados en polígonos y luego dibujar los polígonos en su lugar.
Rendimiento
QPainter es un framework rico que permite a los desarrolladores realizar una gran variedad de operaciones gráficas, como degradados, modos de composición y gráficos vectoriales. Y QPainter puede hacer esto a través de una variedad de diferentes pilas de hardware y software. Naturalmente, la combinación subyacente de hardware y software tiene algunas implicaciones para el rendimiento, y garantizar que cada operación sea rápida en combinación con todas las diversas combinaciones de modos de composición, pinceles, recorte, transformación, etc., es una tarea casi imposible debido al número de permutaciones. Como solución de compromiso, hemos seleccionado un subconjunto de la API y los backends de QPainter, en los que se garantiza un rendimiento tan bueno como sea posible para una combinación dada de hardware y software.
Los backends en los que nos centramos como motores de alto rendimiento son:
- Raster - Este backend implementa todo el renderizado en software puro y se utiliza siempre para renderizar en QImages. Para un rendimiento óptimo, utilice únicamente los tipos de formato QImage::Format_ARGB32_Premultiplied, QImage::Format_RGB32 o QImage::Format_RGB16. Cualquier otro formato, incluido QImage::Format_ARGB32, tiene un rendimiento significativamente peor. Este motor se utiliza por defecto para QWidget y QPixmap.
- OpenGL 2.0 (ES) - Este backend es el principal para gráficos acelerados por hardware. Puede ejecutarse en equipos de sobremesa y dispositivos integrados compatibles con la especificación OpenGL 2.0 u OpenGL/ES 2.0. Esto incluye la mayoría de los chips gráficos fabricados en los últimos años. Esto incluye la mayoría de los chips gráficos fabricados en los últimos años. El motor puede activarse utilizando QPainter en QOpenGLWidget.
Estas operaciones son:
- Transformaciones simples, es decir, traslación y escalado, además de rotaciones de 0, 90, 180, 270 grados.
drawPixmap()en combinación con transformaciones simples y opacidad con modo de transformación no suave (QPainter::SmoothPixmapTransformno habilitado como pista de render).- Rellenos rectangulares con color sólido, degradados lineales de dos colores y transformaciones simples.
- Recorte rectangular con transformaciones simples y recorte de intersección.
- Modos de composición
QPainter::CompositionMode_Sourcey QPainter::CompositionMode_SourceOver. - Relleno de rectángulos redondeados con color sólido y degradados lineales de dos colores.
- Pixmaps parcheados 3x3, mediante qDrawBorderPixmap.
Esta lista da una indicación de qué funciones utilizar con seguridad en una aplicación en la que el rendimiento es crítico. Para determinadas configuraciones, otras operaciones también pueden ser rápidas, pero antes de hacer un uso extensivo de ellas, se recomienda realizar un benchmark y verificarlas en el sistema donde se ejecutará finalmente el software. También hay casos en los que se pueden utilizar operaciones caras, por ejemplo cuando el resultado se almacena en caché en QPixmap.
Véase también QPaintDevice, QPaintEngine, Qt SVG, Ejemplo básico de dibujo, y Drawing Utility Functions.
Documentación de tipos de miembros
enum QPainter::CompositionMode
Define los modos admitidos para la composición de imágenes digitales. Los modos de composición se utilizan para especificar cómo se fusionan los píxeles de una imagen, el origen, con los píxeles de otra imagen, el destino.
Tenga en cuenta que los modos de operación bit a bit de rasterización, denotados con un prefijo RasterOp, sólo se admiten de forma nativa en los motores X11 y raster paint. Esto significa que la única manera de utilizar estos modos en el Mac es a través de QImage. Los modos de mezcla denotados con RasterOp no son compatibles con plumas y pinceles con componentes alfa. Además, si se activa la sugerencia de renderizado QPainter::Antialiasing, se desactivarán los modos RasterOp.


El tipo más común es SourceOver (a menudo denominado simplemente mezcla alfa) donde el píxel de origen se mezcla sobre el píxel de destino de tal manera que el componente alfa de la fuente define la translucidez del píxel.
Varios modos de composición requieren un canal alfa en las imágenes de origen o destino para tener efecto. Para un rendimiento óptimo es preferible el formato de imagen Format_ARGB32_Premultiplied.
Cuando se establece un modo de composición se aplica a todos los operadores de pintura, plumas, pinceles, degradados y dibujo de pixmap/imagen.
| Constante | Valor | Descripción |
|---|---|---|
QPainter::CompositionMode_SourceOver | 0 | Este es el modo por defecto. El alfa de la fuente se usa para mezclar el píxel encima del destino. |
QPainter::CompositionMode_DestinationOver | 1 | El alfa del destino se utiliza para mezclarlo sobre los píxeles de origen. Este modo es el inverso de CompositionMode_SourceOver. |
QPainter::CompositionMode_Clear | 2 | Los píxeles del destino se borran (se ponen totalmente transparentes) independientemente del origen. |
QPainter::CompositionMode_Source | 3 | La salida es el píxel de origen. (Esto significa una operación de copia básica y es idéntica a SourceOver cuando el píxel de origen es opaco). |
QPainter::CompositionMode_Destination | 4 | La salida es el píxel de destino. Esto significa que la mezcla no tiene ningún efecto. Este modo es el inverso de CompositionMode_Source. |
QPainter::CompositionMode_SourceIn | 5 | La salida es la fuente, donde el alfa es reducido por el del destino. |
QPainter::CompositionMode_DestinationIn | 6 | La salida es el destino, donde el alfa es reducido por el de la fuente. Este modo es el inverso de CompositionMode_SourceIn. |
QPainter::CompositionMode_SourceOut | 7 | La salida es la fuente, donde el alfa se reduce en la inversa del destino. |
QPainter::CompositionMode_DestinationOut | 8 | La salida es el destino, donde el alfa se reduce por el inverso de la fuente. Este modo es el inverso de CompositionMode_SourceOut. |
QPainter::CompositionMode_SourceAtop | 9 | El píxel de origen se mezcla sobre el de destino, con el alfa del píxel de origen reducido por el alfa del píxel de destino. |
QPainter::CompositionMode_DestinationAtop | 10 | El píxel de destino se mezcla sobre el origen, con el alfa del píxel de destino reducido por el alfa del píxel de destino. Este modo es el inverso de CompositionMode_SourceAtop. |
QPainter::CompositionMode_Xor | 11 | El origen, cuyo alfa se reduce con la inversa del alfa del destino, se fusiona con el destino, cuyo alfa se reduce con la inversa del alfa del origen. CompositionMode_Xor no es lo mismo que el bitwise Xor. |
QPainter::CompositionMode_Plus | 12 | Tanto el alfa como el color de los píxeles de origen y destino se suman. |
QPainter::CompositionMode_Multiply | 13 | El resultado es el color de origen multiplicado por el de destino. La multiplicación de un color por blanco deja el color sin cambios, mientras que la multiplicación de un color por negro produce negro. |
QPainter::CompositionMode_Screen | 14 | Los colores de origen y destino se invierten y luego se multiplican. El tamizado de un color con blanco produce blanco, mientras que el tamizado de un color con negro deja el color inalterado. |
QPainter::CompositionMode_Overlay | 15 | Multiplica o tamiza los colores en función del color de destino. El color de destino se mezcla con el color de origen para reflejar la claridad u oscuridad del destino. |
QPainter::CompositionMode_Darken | 16 | Se selecciona el más oscuro de los colores de origen y destino. |
QPainter::CompositionMode_Lighten | 17 | Se selecciona el más claro de los colores de origen y destino. |
QPainter::CompositionMode_ColorDodge | 18 | El color de destino se aclara para reflejar el color de origen. Un color de origen negro no modifica el color de destino. |
QPainter::CompositionMode_ColorBurn | 19 | El color de destino se oscurece para reflejar el color de origen. Un color de origen blanco no modifica el color de destino. |
QPainter::CompositionMode_HardLight | 20 | Multiplica o tamiza los colores en función del color de origen. Un color de origen claro aclarará el color de destino, mientras que un color de origen oscuro oscurecerá el color de destino. |
QPainter::CompositionMode_SoftLight | 21 | Oscurece o aclara los colores en función del color de origen. Similar a CompositionMode_HardLight. |
QPainter::CompositionMode_Difference | 22 | Resta el color más oscuro del más claro. Pintar con blanco invierte el color de destino, mientras que pintar con negro deja el color de destino sin cambios. |
QPainter::CompositionMode_Exclusion | 23 | Similar a CompositionMode_Difference, pero con un contraste menor. Pintar con blanco invierte el color de destino, mientras que pintar con negro deja el color de destino sin cambios. |
QPainter::RasterOp_SourceOrDestination | 24 | Realiza una operación OR a nivel de bits en los píxeles de origen y destino (src OR dst). |
QPainter::RasterOp_SourceAndDestination | 25 | Realiza una operación AND a nivel de bits en los píxeles de origen y destino (src AND dst). |
QPainter::RasterOp_SourceXorDestination | 26 | Realiza una operación XOR a nivel de bits en los píxeles de origen y destino (src XOR dst). |
QPainter::RasterOp_NotSourceAndNotDestination | 27 | Realiza una operación NOR a nivel de bits en los píxeles de origen y destino ((NOT src) AND (NOT dst)). |
QPainter::RasterOp_NotSourceOrNotDestination | 28 | Realiza una operación NAND por bits en los píxeles de origen y destino ((NOT src) OR (NOT dst)). |
QPainter::RasterOp_NotSourceXorDestination | 29 | Realiza una operación bit a bit en la que los píxeles de origen se invierten y luego se XOR con el destino ((NOT src) XOR dst). |
QPainter::RasterOp_NotSource | 30 | Realiza una operación bit a bit en la que se invierten los píxeles de origen (NOT src). |
QPainter::RasterOp_NotSourceAndDestination | 31 | Realiza una operación bit a bit en la que el origen se invierte y luego se une con el destino ((NOT src) AND dst). |
QPainter::RasterOp_SourceAndNotDestination | 32 | Realiza una operación bit a bit en la que el origen se une con los píxeles de destino invertidos (src AND (NOT dst)). |
QPainter::RasterOp_NotSourceOrDestination | 33 | Realiza una operación bit a bit en la que el origen se invierte y luego se une con el destino ((NOT src) OR dst). |
QPainter::RasterOp_ClearDestination | 35 | Los píxeles del destino se borran (se ponen a 0) independientemente del origen. |
QPainter::RasterOp_SetDestination | 36 | Los píxeles del destino se ponen a 1 independientemente del origen. |
QPainter::RasterOp_NotDestination | 37 | Realiza una operación bit a bit en la que los píxeles de destino se invierten (NOT dst). |
QPainter::RasterOp_SourceOrNotDestination | 34 | Realiza una operación bit a bit en la que el origen se une con los píxeles de destino invertidos (src OR (NOT dst)). |
Ver también compositionMode(), setCompositionMode(), Composition Modes, y Ejemplo de composición de imágenes.
enum QPainter::PixmapFragmentHint
flags QPainter::PixmapFragmentHints
| Constante | Valor | Descripción |
|---|---|---|
QPainter::OpaqueHint | 0x01 | Indica que los fragmentos de mapa de píxeles a dibujar son opacos. Los fragmentos opacos son potencialmente más rápidos de dibujar. |
El tipo PixmapFragmentHints es un typedef para QFlags<PixmapFragmentHint>. Almacena una combinación OR de valores PixmapFragmentHint.
Ver también QPainter::drawPixmapFragments() y QPainter::PixmapFragment.
enum QPainter::RenderHint
flags QPainter::RenderHints
Las Renderhints se usan para especificar flags a QPainter que pueden o no ser respetadas por un motor determinado.
| Constante | Valor | Descripción |
|---|---|---|
QPainter::Antialiasing | 0x01 | Indica que el motor debe antialiasear los bordes de las primitivas si es posible. |
QPainter::TextAntialiasing | 0x02 | Indica que el motor debe antialiasear el texto si es posible. Para deshabilitar forzosamente el antialiasing para texto, no uses esta sugerencia. En su lugar, establezca QFont::NoAntialias en la estrategia de estilo de su fuente. |
QPainter::SmoothPixmapTransform | 0x04 | Indica que el motor debe utilizar un algoritmo de transformación de mapa de píxeles suave (como bilineal) en lugar del vecino más cercano. |
QPainter::VerticalSubpixelPositioning | 0x08 | Permite que el texto se coloque en fracciones de píxeles tanto vertical como horizontalmente, si el motor de la fuente lo admite. Actualmente, Freetype admite esta opción en todas las plataformas cuando la preferencia de sugerencia es QFont::PreferNoHinting, y también en macOS. En la mayoría de los casos, esto no mejorará la calidad visual, pero puede aumentar el consumo de memoria y reducir el rendimiento de la representación del texto. Por lo tanto, no se recomienda activarlo a menos que el caso de uso lo requiera. Uno de estos casos de uso podría ser la alineación de glifos con otras primitivas visuales. Este valor se añadió en Qt 6.1. |
QPainter::LosslessImageRendering | 0x40 | Utilizar un renderizado de imagen sin pérdidas, siempre que sea posible. Actualmente, esta sugerencia sólo se utiliza cuando se emplea QPainter para generar un archivo PDF a través de QPrinter o QPdfWriter, donde las llamadas a drawImage()/drawPixmap() codificarán las imágenes utilizando un algoritmo de compresión sin pérdida en lugar de la compresión JPEG con pérdida. Este valor se añadió en Qt 5.13. |
QPainter::NonCosmeticBrushPatterns | 0x80 | Cuando se pinta con un pincel con uno de los estilos de patrón predefinidos, transforma el patrón también, junto con el objeto que se está pintando. El valor por defecto es tratar el patrón como cosmético, de modo que los píxeles del patrón se mapearán directamente a los píxeles del dispositivo, independientemente de cualquier transformación activa. Este valor se añadió en Qt 6.4. |
El tipo RenderHints es un typedef para QFlags<RenderHint>. Almacena una combinación OR de valores RenderHint.
Ver también renderHints(), setRenderHint(), y Rendering Quality.
Documentación de Funciones Miembro
QPainter::QPainter()
Construye un pintor.
Véase también begin() y end().
[explicit] QPainter::QPainter(QPaintDevice *device)
Construye un pintor que comienza a pintar la pintura device inmediatamente.
Este constructor es conveniente para pintores de corta duración, por ejemplo en un QWidget::paintEvent() y debería usarse sólo una vez. El constructor llama a begin() por ti y el destructor de QPainter llama automáticamente a end().
Aquí tienes un ejemplo usando begin() y end():
void MyWidget::paintEvent(QPaintEvent *) { QPainter p; p.begin(this); p.drawLine(drawingCode); // drawing code p.end(); }
El mismo ejemplo usando este constructor:
void MyWidget::paintEvent(QPaintEvent *) { QPainter p(this); p.drawLine(drawingCode); // drawing code }
Dado que el constructor no puede proporcionar información cuando la inicialización del pintor ha fallado deberías usar begin() y end() para pintar en dispositivos externos, por ejemplo impresoras.
Véase también begin() y end().
[noexcept] QPainter::~QPainter()
Destruye al pintor.
const QBrush &QPainter::background() const
Devuelve el pincel de fondo actual.
Véase también setBackground() y Settings.
Qt::BGMode QPainter::backgroundMode() const
Devuelve el modo de fondo actual.
Véase también setBackgroundMode() y Settings.
bool QPainter::begin(QPaintDevice *device)
Comienza a pintar la pintura device y devuelve true si tiene éxito; en caso contrario devuelve false.
Observe que todos los ajustes del pintor (setPen(), setBrush() etc.) se restablecen a los valores por defecto cuando se llama a begin().
Los errores que pueden ocurrir son problemas serios, como estos:
painter->begin(nullptr); // impossible - paint device cannot be null QPixmap image(0, 0); painter->begin(&image); // impossible - image.isNull() == true; painter->begin(myWidget); painter2->begin(myWidget); // impossible - only one painter at a time
Tenga en cuenta que la mayoría de las veces, puede utilizar uno de los constructores en lugar de begin(), y que end() se realiza automáticamente en la destrucción.
Advertencia: Un dispositivo de pintura sólo puede ser pintado por un pintor a la vez.
Atención: No se puede pintar en un QImage con el formato QImage::Format_Indexed8.
Véase también end() y QPainter().
void QPainter::beginNativePainting()
Limpia el canal de pintura y prepara al usuario para emitir comandos directamente al contexto gráfico subyacente. Debe ir seguido de una llamada a endNativePainting().
Ten en cuenta que sólo los estados que cambie el motor de pintura subyacente se restablecerán a sus respectivos estados por defecto. Los estados que restablecemos pueden cambiar de una versión a otra. Los siguientes estados se restablecen actualmente en el motor OpenGL 2:
- la mezcla está desactivada
- las pruebas de profundidad, stencil y tijera están desactivadas
- la unidad de textura activa se restablece a 0
- la máscara de profundidad, la función de profundidad y la profundidad de borrado vuelven a sus valores por defecto
- la máscara de estarcido, el funcionamiento del estarcido y la función de estarcido se restablecen a sus valores por defecto
- el color actual se restablece a blanco sólido
Si, por ejemplo, el modo de polígono OpenGL es cambiado por el usuario dentro de un bloque beginNativePaint()/endNativePainting(), no será reseteado al estado por defecto por endNativePainting(). Este es un ejemplo que muestra la mezcla de comandos de pintor y comandos OpenGL sin procesar:
QPainter painter(this); painter.fillRect(0, 0, 128, 128, Qt::green); painter.beginNativePainting(); glEnable(GL_SCISSOR_TEST); glScissor(0, 0, 64, 64); glClearColor(1, 0, 0, 1); glClear(GL_COLOR_BUFFER_BIT); glDisable(GL_SCISSOR_TEST); painter.endNativePainting();
Véase también endNativePainting().
QRectF QPainter::boundingRect(const QRectF &rectangle, int flags, const QString &text)
Devuelve el rectángulo delimitador de text tal y como aparecerá cuando se dibuje dentro del rectangle dado con el flags especificado utilizando el font() actualmente establecido; es decir, la función le indica dónde dibujará la función drawText() cuando se le den los mismos argumentos.
Si el text no cabe dentro del rectangle dado utilizando el flags especificado, la función devuelve el rectángulo requerido.
El argumento flags es un bitwise OR de las siguientes banderas:
- Qt::AlignLeft
- Qt::AlignRight
- Qt::AlignHCenter
- Qt::AlignTop
- Qt::AlignBottom
- Qt::AlignVCenter
- Qt::AlignCenter
- Qt::TextSingleLine
- Qt::TextExpandTabs
- Qt::TextShowMnemonic
- Qt::TextWordWrap
- Qt::TextIncludeTrailingSpaces
Si varias de las banderas de alineación horizontal o varias de las banderas de alineación vertical están activadas, la alineación resultante es indefinida.
Véase también drawText(), Qt::Alignment, y Qt::TextFlag.
QRect QPainter::boundingRect(const QRect &rectangle, int flags, const QString &text)
Devuelve el rectángulo delimitador de text tal y como aparecerá cuando se dibuje dentro del rectangle dado con el flags especificado utilizando el font() actualmente establecido.
Se trata de una función sobrecargada.
QRectF QPainter::boundingRect(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())
En lugar de especificar las banderas como un OR a nivel de bits de Qt::AlignmentFlag y Qt::TextFlag, esta función sobrecargada toma un argumento option. La clase QTextOption proporciona una descripción de las propiedades generales del texto enriquecido.
Se trata de una función sobrecargada.
Véase también QTextOption.
QRect QPainter::boundingRect(int x, int y, int w, int h, int flags, const QString &text)
Devuelve el rectángulo delimitador del text dado tal y como aparecerá cuando se dibuje dentro del rectángulo que comienza en el punto (x, y) con anchura w y altura h.
Se trata de una función sobrecargada.
const QBrush &QPainter::brush() const
Devuelve el pincel actual del pintor.
Véase también QPainter::setBrush() y Settings.
QPoint QPainter::brushOrigin() const
Devuelve el origen actual del pincel. Es preferible utilizar QPainter::brushOriginF() para obtener el origen exacto.
Véase también setBrushOrigin() y Settings.
[since 6.11] QPointF QPainter::brushOriginF() const
Devuelve el origen actual del pincel.
Esta función se introdujo en Qt 6.11.
Véase también setBrushOrigin() y Settings.
QRectF QPainter::clipBoundingRect() const
Devuelve el rectángulo delimitador del clip actual si hay un clip; en caso contrario devuelve un rectángulo vacío. Tenga en cuenta que la región de recorte se da en coordenadas lógicas.
No se garantiza que el rectángulo delimitador sea ajustado.
Véase también setClipRect(), setClipPath() y setClipRegion().
QPainterPath QPainter::clipPath() const
Devuelve la ruta del clip actual en coordenadas lógicas.
Advertencia: QPainter no almacena el clip combinado explícitamente, ya que esto es gestionado por el subyacente QPaintEngine, por lo que la ruta es recreada bajo demanda y transformada al sistema de coordenadas lógicas actual. Esta es una operación potencialmente costosa.
Véase también setClipPath(), clipRegion(), y setClipping().
QRegion QPainter::clipRegion() const
Devuelve la región de recorte definida actualmente. Tenga en cuenta que la región de recorte se da en coordenadas lógicas.
Advertencia: QPainter no almacena el clip combinado explícitamente, ya que esto es gestionado por el subyacente QPaintEngine, por lo que la ruta es recreada bajo demanda y transformada al sistema de coordenadas lógicas actual. Esta es una operación potencialmente costosa.
Véase también setClipRegion(), clipPath(), y setClipping().
QTransform QPainter::combinedTransform() const
Devuelve la matriz de transformación que combina la ventana/puerta de vista actual y la transformación global.
Véase también setWorldTransform(), setWindow() y setViewport().
QPainter::CompositionMode QPainter::compositionMode() const
Devuelve el modo de composición actual.
Véase también CompositionMode y setCompositionMode().
QPaintDevice *QPainter::device() const
Devuelve el dispositivo de pintura en el que este pintor está pintando actualmente, o nullptr si el pintor no está activo.
Véase también isActive().
const QTransform &QPainter::deviceTransform() const
Devuelve la matriz que transforma de coordenadas lógicas a coordenadas de dispositivo del dispositivo de pintado dependiente de la plataforma.
Esta función sólo es necesaria cuando se utilizan comandos de pintado de plataforma en el manejador dependiente de plataforma (Qt::HANDLE), y la plataforma no realiza transformaciones de forma nativa.
El enum QPaintEngine::PaintEngineFeature puede ser consultado para determinar si la plataforma realiza las transformaciones o no.
Véase también worldTransform() y QPaintEngine::hasFeature().
void QPainter::drawArc(const QRectF &rectangle, int startAngle, int spanAngle)
Dibuja el arco definido por los campos rectangle, startAngle y spanAngle.
startAngle y spanAngle deben especificarse en 1/16 de grado, es decir, un círculo completo equivale a 5760 (16 * 360). Los valores positivos de los ángulos significan el sentido contrario a las agujas del reloj, mientras que los valores negativos significan el sentido de las agujas del reloj. Cero grados está en la posición de las 3 en punto.
![]() |
Véase también drawPie(), drawChord() y Sistema de coordenadas.
void QPainter::drawArc(const QRect &rectangle, int startAngle, int spanAngle)
Dibuja el arco definido por rectangle, startAngle y spanAngle.
Se trata de una función sobrecargada.
void QPainter::drawArc(int x, int y, int width, int height, int startAngle, int spanAngle)
Dibuja el arco definido por el rectángulo que empieza en (x, y) con los width y height especificados y los startAngle y spanAngle dados.
Se trata de una función sobrecargada.
void QPainter::drawChord(const QRectF &rectangle, int startAngle, int spanAngle)
Dibuja la cuerda definida por rectangle, startAngle y spanAngle. La cuerda se rellena con la dirección brush() actual.
StartAngle y spanAngle deben especificarse en 1/16 de grado, es decir, un círculo completo equivale a 5760 (16 * 360). Los valores positivos para los ángulos significan el sentido contrario a las agujas del reloj, mientras que los valores negativos significan el sentido de las agujas del reloj. Cero grados está en la posición de las 3 en punto.
![]() |
Véase también drawArc(), drawPie() y Sistema de coordenadas.
void QPainter::drawChord(const QRect &rectangle, int startAngle, int spanAngle)
Dibuja la cuerda definida por rectangle, startAngle y spanAngle.
Se trata de una función sobrecargada.
void QPainter::drawChord(int x, int y, int width, int height, int startAngle, int spanAngle)
Dibuja la cuerda definida por el rectángulo que empieza en (x, y) con los width y height especificados y los startAngle y spanAngle dados.
Se trata de una función sobrecargada.
void QPainter::drawConvexPolygon(const QPointF *points, int pointCount)
Dibuja el polígono convexo definido por los primeros pointCount puntos de la matriz points utilizando el lápiz actual.
![]() |
El primer punto se conecta implícitamente al último punto, y el polígono se rellena con el brush actual (). Si el polígono suministrado no es convexo, es decir, contiene al menos un ángulo mayor de 180 grados, los resultados son indefinidos.
En algunas plataformas (por ejemplo, X11), la función drawConvexPolygon() puede ser más rápida que la función drawPolygon().
Véase también drawPolygon(), drawPolyline() y Sistema de coordenadas.
void QPainter::drawConvexPolygon(const QPolygon &polygon)
Dibuja el polígono convexo definido por polygon utilizando el lápiz y el pincel actuales.
Se trata de una función sobrecargada.
void QPainter::drawConvexPolygon(const QPolygonF &polygon)
Dibuja el polígono convexo definido por polygon utilizando el lápiz y el pincel actuales.
Se trata de una función sobrecargada.
void QPainter::drawConvexPolygon(const QPoint *points, int pointCount)
Dibuja el polígono convexo definido por los primeros pointCount puntos de la matriz points utilizando el lápiz actual.
Se trata de una función sobrecargada.
void QPainter::drawEllipse(const QRectF &rectangle)
Dibuja la elipse definida por rectangle.
Una elipse rellena tiene un tamaño de rectangle.size(). Una elipse trazada tiene un tamaño de rectangle.size() más el ancho del lápiz.
Véase también drawPie() y Sistema de coordenadas.
void QPainter::drawEllipse(const QRect &rectangle)
Dibuja la elipse definida por la dirección rectangle.
Se trata de una función sobrecargada.
void QPainter::drawEllipse(const QPoint ¢er, int rx, int ry)
Dibuja la elipse situada en center con los radios rx y ry.
Se trata de una función sobrecargada.
void QPainter::drawEllipse(const QPointF ¢er, qreal rx, qreal ry)
Dibuja la elipse situada en center con los radios rx y ry.
Se trata de una función sobrecargada.
void QPainter::drawEllipse(int x, int y, int width, int height)
Dibuja la elipse definida por el rectángulo que comienza en (x, y) con los valores width y height.
Se trata de una función sobrecargada.
void QPainter::drawGlyphRun(const QPointF &position, const QGlyphRun &glyphs)
Dibuja los glifos representados por glyphs en position. position da el borde de la línea de base para la cadena de glifos. Los glifos se obtendrán de la fuente seleccionada en glyphs y en los desplazamientos dados por las posiciones en glyphs.
Véase también QGlyphRun::setRawFont(), QGlyphRun::setPositions() y QGlyphRun::setGlyphIndexes().
void QPainter::drawImage(const QRectF &target, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
Dibuja la porción rectangular source del image dado en el rectángulo target en el dispositivo de pintura.
Nota: La imagen se escala para ajustarse al rectángulo, si el tamaño de la imagen y del rectángulo no coinciden.
Nota : Véase Drawing High Resolution Versions of Pixmaps and Images sobre cómo afecta esto a QImage::devicePixelRatio().
Si es necesario modificar la imagen para que quepa en un resultado de menor resolución (por ejemplo, convertir de 32 bits a 8 bits), utilice flags para especificar cómo prefiere que se haga.
Véase también drawPixmap() y QImage::devicePixelRatio().
void QPainter::drawImage(const QPoint &point, const QImage &image)
Dibuja el image dado en el point dado.
Se trata de una función sobrecargada.
void QPainter::drawImage(const QPointF &point, const QImage &image)
Dibuja el image dado en el point dado.
Se trata de una función sobrecargada.
void QPainter::drawImage(const QRect &rectangle, const QImage &image)
Dibuja el image dado en el rectangle dado.
Nota: La imagen se escala para ajustarse al rectángulo, si el tamaño de la imagen y del rectángulo no coinciden.
Se trata de una función sobrecargada.
void QPainter::drawImage(const QRectF &rectangle, const QImage &image)
Dibuja el image dado en el rectangle dado.
Nota: La imagen se escala para ajustarse al rectángulo, si el tamaño de la imagen y del rectángulo no coinciden.
Se trata de una función sobrecargada.
void QPainter::drawImage(const QPoint &point, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
Dibuja la porción rectangular source del image dado con su origen en el point dado.
Se trata de una función sobrecargada.
void QPainter::drawImage(const QPointF &point, const QImage &image, const QRectF &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
Dibuja la porción rectangular source del image dado con su origen en el point dado.
Se trata de una función sobrecargada.
void QPainter::drawImage(const QRect &target, const QImage &image, const QRect &source, Qt::ImageConversionFlags flags = Qt::AutoColor)
Dibuja la porción rectangular source del image dado en el rectángulo target en el dispositivo de pintura.
Nota: La imagen se escala para ajustarse al rectángulo, si el tamaño de la imagen y del rectángulo no coinciden.
Esta es una función sobrecargada.
void QPainter::drawImage(int x, int y, const QImage &image, int sx = 0, int sy = 0, int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor)
Dibuja una imagen en (x, y) copiando una parte de image en el dispositivo de pintura.
(x, y) especifica el punto superior izquierdo en el dispositivo de pintura sobre el que se va a dibujar. (sx, sy) especifica el punto superior izquierdo en image que se va a dibujar. El valor por defecto es (0, 0).
(sw, sh) especifica el tamaño de la imagen que se va a dibujar. Por defecto, (0, 0) (y negativo) significa todo el camino hasta la parte inferior derecha de la imagen.
Esta es una función sobrecargada.
void QPainter::drawLine(const QLineF &line)
Dibuja una línea definida por line.
Ver también drawLines(), drawPolyline(), y Sistema de coordenadas.
void QPainter::drawLine(const QLine &line)
Dibuja una línea definida por line.
Se trata de una función sobrecargada.
void QPainter::drawLine(const QPoint &p1, const QPoint &p2)
Dibuja una línea desde p1 hasta p2.
Se trata de una función sobrecargada.
void QPainter::drawLine(const QPointF &p1, const QPointF &p2)
Dibuja una línea desde p1 hasta p2.
Se trata de una función sobrecargada.
void QPainter::drawLine(int x1, int y1, int x2, int y2)
Dibuja una línea desde (x1, y1) hasta (x2, y2).
Se trata de una función sobrecargada.
void QPainter::drawLines(const QLineF *lines, int lineCount)
Dibuja las primeras líneas de lineCount en el array lines utilizando el lápiz actual.
Véase también drawLine() y drawPolyline().
void QPainter::drawLines(const QList<QLine> &lines)
Dibuja el conjunto de líneas definidas por la lista lines utilizando la pluma y el pincel actuales.
Se trata de una función sobrecargada.
void QPainter::drawLines(const QList<QLineF> &lines)
Dibuja el conjunto de líneas definidas por la lista lines utilizando la pluma y el pincel actuales.
Se trata de una función sobrecargada.
void QPainter::drawLines(const QList<QPoint> &pointPairs)
Dibuja una línea para cada par de puntos en el vector pointPairs utilizando el lápiz actual.
Se trata de una función sobrecargada.
void QPainter::drawLines(const QList<QPointF> &pointPairs)
Dibuja una línea para cada par de puntos del vector pointPairs utilizando el lápiz actual. Si hay un número impar de puntos en la matriz, se ignorará el último punto.
Se trata de una función sobrecargada.
void QPainter::drawLines(const QLine *lines, int lineCount)
Dibuja las primeras lineCount líneas en el array lines usando el lápiz actual.
Se trata de una función sobrecargada.
void QPainter::drawLines(const QPoint *pointPairs, int lineCount)
Dibuja las primeras lineCount líneas en el array pointPairs usando el lápiz actual.
Se trata de una función sobrecargada.
void QPainter::drawLines(const QPointF *pointPairs, int lineCount)
Dibuja las primeras lineCount líneas de la matriz pointPairs utilizando el lápiz actual. Las líneas se especifican como pares de puntos, por lo que el número de entradas en pointPairs debe ser al menos lineCount * 2.
Esta es una función sobrecargada.
void QPainter::drawPath(const QPainterPath &path)
Dibuja el pintor dado path usando el lápiz actual para el contorno y el pincel actual para el relleno.
![]() | QPainterPath path; path.moveTo(20, 80); path.lineTo(20, 30); path.cubicTo(80, 0, 50, 50, 80, 80); QPainter painter(this); painter.drawPath(path); |
Véase también el ejemplo Trazados de pintor y el ejemplo Deformación vectorial.
void QPainter::drawPicture(const QPointF &point, const QPicture &picture)
Reproduce el picture dado en el point dado.
La clase QPicture es un dispositivo pintor que graba y replica comandos QPainter. Una imagen serializa los comandos del pintor a un dispositivo IO en un formato independiente de la plataforma. Todo lo que se puede pintar en un widget o pixmap también se puede almacenar en una imagen.
Esta función hace exactamente lo mismo que QPicture::play() cuando se llama con point = QPointF(0, 0).
Nota: El estado del pintor es preservado por esta función.
Véase también QPicture::play().
void QPainter::drawPicture(const QPoint &point, const QPicture &picture)
Reproduce la dirección picture en la dirección point.
Se trata de una función sobrecargada.
void QPainter::drawPicture(int x, int y, const QPicture &picture)
Dibuja el picture dado en el punto (x, y).
Se trata de una función sobrecargada.
void QPainter::drawPie(const QRectF &rectangle, int startAngle, int spanAngle)
Dibuja una tarta definida por los campos rectangle, startAngle y spanAngle.
La tarta se rellena con el brush() actual.
StartAngle y spanAngle deben especificarse en 1/16 de grado, es decir, un círculo completo equivale a 5760 (16 * 360). Los valores positivos para los ángulos significan el sentido contrario a las agujas del reloj, mientras que los valores negativos significan el sentido de las agujas del reloj. Cero grados está en la posición de las 3 en punto.
![]() |
Véase también drawEllipse(), drawChord() y Sistema de coordenadas.
void QPainter::drawPie(const QRect &rectangle, int startAngle, int spanAngle)
Dibuja una tarta definida por los campos rectangle, startAngle y spanAngle.
Se trata de una función sobrecargada.
void QPainter::drawPie(int x, int y, int width, int height, int startAngle, int spanAngle)
Dibuja la tarta definida por el rectángulo que empieza en (x, y) con los width y height especificados y los startAngle y spanAngle dados.
Se trata de una función sobrecargada.
void QPainter::drawPixmap(const QRectF &target, const QPixmap &pixmap, const QRectF &source)
Dibuja la porción rectangular source del pixmap dado en el target dado en el dispositivo de pintura.
Nota: El mapa de píxeles se escala para ajustarse al rectángulo, si el tamaño del mapa de píxeles y del rectángulo no coinciden.
Nota: Ver Drawing High Resolution Versions of Pixmaps and Images sobre cómo se ve afectado por QPixmap::devicePixelRatio().
Si pixmap es un QBitmap se dibuja con los bits que están "puestos" usando el color de las plumas. Si backgroundMode es Qt::OpaqueMode, los bits "no establecidos" se dibujan usando el color del pincel de fondo; si backgroundMode es Qt::TransparentMode, los bits "no establecidos" son transparentes. No es posible dibujar mapas de bits con colores de degradado o textura.
Véase también drawImage() y QPixmap::devicePixelRatio().
void QPainter::drawPixmap(const QPoint &point, const QPixmap &pixmap)
Dibuja el pixmap dado con su origen en el point dado.
Se trata de una función sobrecargada.
void QPainter::drawPixmap(const QPointF &point, const QPixmap &pixmap)
Dibuja el pixmap dado con su origen en el point dado.
Se trata de una función sobrecargada.
void QPainter::drawPixmap(const QRect &rectangle, const QPixmap &pixmap)
Dibuja el pixmap dado en el rectangle dado.
Nota: El mapa de píxeles se escala para ajustarse al rectángulo, si el tamaño del mapa de píxeles y del rectángulo no coinciden.
Esta es una función sobrecargada.
void QPainter::drawPixmap(const QPoint &point, const QPixmap &pixmap, const QRect &source)
Dibuja la porción rectangular source del pixmap dado con su origen en el point dado.
Se trata de una función sobrecargada.
void QPainter::drawPixmap(const QPointF &point, const QPixmap &pixmap, const QRectF &source)
Dibuja la porción rectangular source del pixmap dado con su origen en el point dado.
Se trata de una función sobrecargada.
void QPainter::drawPixmap(const QRect &target, const QPixmap &pixmap, const QRect &source)
Dibuja la porción rectangular source del pixmap dado en el target dado en el dispositivo de pintura.
Nota: El mapa de píxeles se escala para ajustarse al rectángulo, si el tamaño del mapa de píxeles y del rectángulo no coinciden.
Esta es una función sobrecargada.
void QPainter::drawPixmap(int x, int y, const QPixmap &pixmap)
Dibuja el pixmap dado en la posición (x, y).
Se trata de una función sobrecargada.
void QPainter::drawPixmap(int x, int y, int width, int height, const QPixmap &pixmap)
Dibuja el pixmap en el rectángulo en la posición (x, y) con los width y height dados.
Se trata de una función sobrecargada.
void QPainter::drawPixmap(int x, int y, const QPixmap &pixmap, int sx, int sy, int sw, int sh)
Dibuja un pixmap en (x, y) copiando una parte del pixmap dado en el dispositivo de pintura.
(x, y) especifica el punto superior izquierdo en el dispositivo de pintura sobre el que se va a dibujar. (sx, sy) especifica el punto superior izquierdo en pixmap que se va a dibujar. El valor por defecto es (0, 0).
(sw, sh) especifica el tamaño del mapa de píxeles que se va a dibujar. El valor por defecto, (0, 0) (y negativo) significa todo el camino hasta la parte inferior derecha del pixmap.
Esta es una función sobrecargada.
void QPainter::drawPixmap(int x, int y, int w, int h, const QPixmap &pixmap, int sx, int sy, int sw, int sh)
Dibuja la porción rectangular con el origen (sx, sy), anchura sw y altura sh, del pixmap dado, en el punto (x, y), con una anchura de w y una altura de h. Si sw o sh son iguales a cero se utiliza la anchura/altura del pixmap y se ajusta por el offset sx/sy;
Se trata de una función sobrecargada.
void QPainter::drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap, QPainter::PixmapFragmentHints hints = PixmapFragmentHints())
Esta función se utiliza para dibujar pixmap, o un sub-rectángulo de pixmap, en múltiples posiciones con diferente escala, rotación y opacidad. fragments es una matriz de elementos fragmentCount que especifica los parámetros utilizados para dibujar cada fragmento de pixmap. El parámetro hints puede utilizarse para pasar pistas de dibujo.
Esta función es potencialmente más rápida que múltiples llamadas a drawPixmap(), ya que el backend puede optimizar los cambios de estado.
Véase también QPainter::PixmapFragment y QPainter::PixmapFragmentHint.
void QPainter::drawPoint(const QPointF &position)
Dibuja un único punto en la dirección position utilizando el color del lápiz actual.
Véase también Sistema de coordenadas.
void QPainter::drawPoint(const QPoint &position)
Dibuja un único punto en la dirección position utilizando el color del lápiz actual.
Se trata de una función sobrecargada.
void QPainter::drawPoint(int x, int y)
Dibuja un único punto en la posición (x, y).
Se trata de una función sobrecargada.
void QPainter::drawPoints(const QPointF *points, int pointCount)
Dibuja los primeros pointCount puntos en el array points usando el color del lápiz actual.
Véase también Sistema de coordenadas.
void QPainter::drawPoints(const QPolygon &points)
Dibuja los puntos del vector points.
Se trata de una función sobrecargada.
void QPainter::drawPoints(const QPolygonF &points)
Dibuja los puntos del vector points.
Se trata de una función sobrecargada.
void QPainter::drawPoints(const QPoint *points, int pointCount)
Dibuja los primeros pointCount puntos en el array points usando el color del lápiz actual.
Esta es una función sobrecargada.
void QPainter::drawPolygon(const QPointF *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)
Dibuja el polígono definido por los primeros pointCount puntos de la matriz points utilizando la pluma y el pincel actuales.
![]() |
El primer punto se conecta implícitamente al último punto, y el polígono se rellena con el brush() actual.
Si fillRule es Qt::WindingFill, el polígono se rellena utilizando el algoritmo de relleno sinuoso. Si fillRule es Qt::OddEvenFill, el polígono se rellena utilizando el algoritmo de relleno par-impar. Véase Qt::FillRule para una descripción más detallada de estas reglas de relleno.
Véase también drawConvexPolygon(), drawPolyline(), y Sistema de coordenadas.
void QPainter::drawPolygon(const QPolygon &points, Qt::FillRule fillRule = Qt::OddEvenFill)
Dibuja el polígono definido por la dirección points utilizando la regla de relleno fillRule.
Se trata de una función sobrecargada.
void QPainter::drawPolygon(const QPolygonF &points, Qt::FillRule fillRule = Qt::OddEvenFill)
Dibuja el polígono definido por la dirección points utilizando la regla de relleno fillRule.
Se trata de una función sobrecargada.
void QPainter::drawPolygon(const QPoint *points, int pointCount, Qt::FillRule fillRule = Qt::OddEvenFill)
Dibuja el polígono definido por los primeros pointCount puntos de la matriz points.
Se trata de una función sobrecargada.
void QPainter::drawPolyline(const QPointF *points, int pointCount)
Dibuja la polilínea definida por los primeros puntos de pointCount en points utilizando el lápiz actual.
Observe que, a diferencia de la función drawPolygon(), el último punto no está conectado al primero, ni tampoco se rellena la polilínea.
Véase también drawLines(), drawPolygon(), y Sistema de coordenadas.
void QPainter::drawPolyline(const QPolygon &points)
Dibuja la polilínea definida por points utilizando el lápiz actual.
Se trata de una función sobrecargada.
void QPainter::drawPolyline(const QPolygonF &points)
Dibuja la polilínea definida por points utilizando el lápiz actual.
Se trata de una función sobrecargada.
void QPainter::drawPolyline(const QPoint *points, int pointCount)
Dibuja la polilínea definida por los primeros pointCount puntos en points utilizando el lápiz actual.
Se trata de una función sobrecargada.
void QPainter::drawRect(const QRectF &rectangle)
Dibuja el rectangle actual con la pluma y el pincel actuales.
Un rectángulo relleno tiene un tamaño de rectangle.size(). Un rectángulo trazado tiene un tamaño de rectangle.size() más el ancho de la pluma.
Ver también drawRects(), drawPolygon(), y Sistema de coordenadas.
void QPainter::drawRect(const QRect &rectangle)
Dibuja el rectangle actual con la pluma y el pincel actuales.
Esta es una función sobrecargada.
void QPainter::drawRect(int x, int y, int width, int height)
Dibuja un rectángulo con la esquina superior izquierda en (x, y) y con los valores width y height.
Se trata de una función sobrecargada.
void QPainter::drawRects(const QRectF *rectangles, int rectCount)
Dibuja el primer rectCount del rectangles dado utilizando el lápiz y el pincel actuales.
Véase también drawRect().
void QPainter::drawRects(const QList<QRect> &rectangles)
Dibuja la dirección rectangles utilizando el lápiz y el pincel actuales.
Se trata de una función sobrecargada.
void QPainter::drawRects(const QList<QRectF> &rectangles)
Dibuja la dirección rectangles utilizando el lápiz y el pincel actuales.
Se trata de una función sobrecargada.
void QPainter::drawRects(const QRect *rectangles, int rectCount)
Dibuja el primer rectCount del rectangles dado usando la pluma y el pincel actuales.
Se trata de una función sobrecargada.
void QPainter::drawRoundedRect(const QRectF &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
Dibuja el rectángulo dado rect con las esquinas redondeadas.
Los argumentos xRadius y yRadius especifican los radios de las elipses que definen las esquinas del rectángulo redondeado. Cuando mode es Qt::RelativeSize, xRadius y yRadius se especifican en porcentaje de la mitad de la anchura y altura del rectángulo respectivamente, y deben estar en el rango de 0.0 a 100.0.
Un rectángulo relleno tiene un tamaño de rect.size(). Un rectángulo trazado tiene un tamaño de rect.size() más el ancho del lápiz.
![]() |
Véase también drawRect() y QPen.
void QPainter::drawRoundedRect(const QRect &rect, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
Dibuja el rectángulo dado rect con las esquinas redondeadas.
Se trata de una función sobrecargada.
void QPainter::drawRoundedRect(int x, int y, int w, int h, qreal xRadius, qreal yRadius, Qt::SizeMode mode = Qt::AbsoluteSize)
Dibuja el rectángulo dado x, y, w, h con las esquinas redondeadas.
Se trata de una función sobrecargada.
void QPainter::drawStaticText(const QPointF &topLeftPosition, const QStaticText &staticText)
Dibuja el texto staticText en la dirección topLeftPosition.
El texto se dibujará utilizando el tipo de letra y la transformación establecidos en el pintor. Si el tipo de letra y/o la transformación establecidos en el pintor son diferentes de los utilizados para inicializar el diseño de QStaticText, entonces el diseño tendrá que ser recalculado. Utilice QStaticText::prepare() para inicializar staticText con el tipo de letra y la transformación con los que se dibujará posteriormente.
Si topLeftPosition no es la misma que cuando se inicializó staticText, o cuando se dibujó por última vez, entonces habrá una ligera sobrecarga al traducir el texto a su nueva posición.
Nota: Si la transformación del pintor no es afín, entonces staticText se dibujará usando llamadas regulares a drawText(), perdiendo cualquier potencial de mejora en el rendimiento.
Nota: La posición y se utiliza como la parte superior de la fuente.
Véase también QStaticText.
void QPainter::drawStaticText(const QPoint &topLeftPosition, const QStaticText &staticText)
Dibuja el staticText en el topLeftPosition.
Nota: La posición y se utiliza como la parte superior de la fuente.
Esta es una función sobrecargada.
void QPainter::drawStaticText(int left, int top, const QStaticText &staticText)
Dibuja el staticText en las coordenadas left y top.
Nota: La posición y se utiliza como la parte superior de la fuente.
Se trata de una función sobrecargada.
void QPainter::drawText(const QPointF &position, const QString &text)
Dibuja el text dado con la dirección de texto definida actualmente, comenzando en el position dado.
Esta función no maneja el carácter de nueva línea (\n), ya que no puede dividir el texto en múltiples líneas, y no puede mostrar el carácter de nueva línea. Use la sobrecarga QPainter::drawText() que toma un rectángulo en su lugar si quiere dibujar múltiples líneas de texto con el carácter de nueva línea, o si quiere que el texto sea envuelto.
Por defecto, QPainter dibuja el texto con anti-aliasing.
Nota: La posición y se utiliza como línea de base de la fuente.
Véase también setFont() y setPen().
void QPainter::drawText(const QPoint &position, const QString &text)
Dibuja el text dado con la dirección de texto definida actualmente, comenzando en el position dado.
Por defecto, QPainter dibuja el texto con suavizado.
Nota: La posición y se utiliza como línea de base de la fuente.
Esta es una función sobrecargada.
Véase también setFont() y setPen().
void QPainter::drawText(const QRectF &rectangle, const QString &text, const QTextOption &option = QTextOption())
Dibuja el text dado en el rectangle especificado utilizando el option para controlar su posición, dirección y orientación. Las opciones dadas en option anulan las establecidas en el propio objeto QPainter.
Por defecto, QPainter dibuja el texto con suavizado.
Nota: La coordenada y de rectangle se utiliza como la parte superior de la fuente.
Esta es una función sobrecargada.
Véase también setFont() y setPen().
void QPainter::drawText(int x, int y, const QString &text)
Dibuja el text dado en la posición (x, y), usando la dirección de texto definida por el pintor.
Por defecto, QPainter dibuja el texto con anti-aliasing.
Nota: La posición y se usa como línea base de la fuente.
Esta es una función sobrecargada.
Véase también setFont() y setPen().
void QPainter::drawText(const QRect &rectangle, int flags, const QString &text, QRect *boundingRect = nullptr)
Dibuja el text dado dentro del rectangle proporcionado de acuerdo con el flags especificado.
El boundingRect (si no es nulo) se ajusta a lo que debe ser el rectángulo delimitador para encerrar todo el texto. Por ejemplo, en la siguiente imagen, la línea de puntos representa boundingRect tal y como lo calcula la función, y la línea discontinua representa rectangle:
![]() | QPainter painter(this); QFont font = painter.font(); font.setPixelSize(48); painter.setFont(font); const QRect rectangle = QRect(0, 0, 100, 50); QRect boundingRect; painter.drawText(rectangle, 0, tr("Hello"), &boundingRect); QPen pen = painter.pen(); pen.setStyle(Qt::DotLine); painter.setPen(pen); painter.drawRect(boundingRect.adjusted(0, 0, -pen.width(), -pen.width())); pen.setStyle(Qt::DashLine); painter.setPen(pen); painter.drawRect(rectangle.adjusted(0, 0, -pen.width(), -pen.width())); |
Por defecto, QPainter dibuja el texto con suavizado.
Nota: La coordenada y de rectangle se utiliza como la parte superior de la fuente.
Se trata de una función sobrecargada.
Véase también setFont() y setPen().
void QPainter::drawText(const QRectF &rectangle, int flags, const QString &text, QRectF *boundingRect = nullptr)
Dibuja el text dado dentro del rectangle proporcionado. El rectangle junto con la alineación flags define las anclas para el text.
![]() | QPainter painter(this); painter.drawText(rect, Qt::AlignCenter, tr("Qt\nProject")); |
El boundingRect (si no es nulo) se ajusta a lo que debe ser el rectángulo delimitador para encerrar todo el texto. Por ejemplo, en la siguiente imagen, la línea de puntos representa boundingRect tal y como lo calcula la función, y la línea discontinua representa rectangle:
![]() | QPainter painter(this); QFont font = painter.font(); font.setPixelSize(48); painter.setFont(font); const QRect rectangle = QRect(0, 0, 100, 50); QRect boundingRect; painter.drawText(rectangle, 0, tr("Hello"), &boundingRect); QPen pen = painter.pen(); pen.setStyle(Qt::DotLine); painter.setPen(pen); painter.drawRect(boundingRect.adjusted(0, 0, -pen.width(), -pen.width())); pen.setStyle(Qt::DashLine); painter.setPen(pen); painter.drawRect(rectangle.adjusted(0, 0, -pen.width(), -pen.width())); |
El argumento flags es un OR a nivel de bits de los siguientes indicadores:
- Qt::AlignLeft
- Qt::AlignRight
- Qt::AlignHCenter
- Qt::AlignJustify
- Qt::AlignTop
- Qt::AlignBottom
- Qt::AlignVCenter
- Qt::AlignCenter
- Qt::TextDontClip
- Qt::TextSingleLine
- Qt::TextExpandTabs
- Qt::TextShowMnemonic
- Qt::TextWordWrap
- Qt::TextIncludeTrailingSpaces
Por defecto, QPainter dibuja el texto con suavizado.
Nota: La coordenada y de rectangle se utiliza como la parte superior de la fuente.
Se trata de una función sobrecargada.
Véase también Qt::AlignmentFlag, Qt::TextFlag, boundingRect(), y layoutDirection().
void QPainter::drawText(int x, int y, int width, int height, int flags, const QString &text, QRect *boundingRect = nullptr)
Dibuja el texto text dentro del rectángulo con origen (x, y), width y height.
boundingRect (si no es nulo) se ajusta a lo que debe ser el rectángulo delimitador para encerrar todo el texto. Por ejemplo, en la siguiente imagen, la línea de puntos representa boundingRect tal y como lo calcula la función, y la línea discontinua representa el rectángulo definido por x, y, width y height:
![]() | QPainter painter(this); QFont font = painter.font(); font.setPixelSize(48); painter.setFont(font); const QRect rectangle = QRect(0, 0, 100, 50); QRect boundingRect; painter.drawText(rectangle, 0, tr("Hello"), &boundingRect); QPen pen = painter.pen(); pen.setStyle(Qt::DotLine); painter.setPen(pen); painter.drawRect(boundingRect.adjusted(0, 0, -pen.width(), -pen.width())); pen.setStyle(Qt::DashLine); painter.setPen(pen); painter.drawRect(rectangle.adjusted(0, 0, -pen.width(), -pen.width())); |
El argumento flags es un OR a nivel de bits de los siguientes indicadores:
- Qt::AlignLeft
- Qt::AlignRight
- Qt::AlignHCenter
- Qt::AlignJustify
- Qt::AlignTop
- Qt::AlignBottom
- Qt::AlignVCenter
- Qt::AlignCenter
- Qt::TextSingleLine
- Qt::TextExpandTabs
- Qt::TextShowMnemonic
- Qt::TextWordWrap
Por defecto, QPainter dibuja el texto con suavizado.
Nota: La posición y se utiliza como la parte superior de la fuente.
Esta es una función sobrecargada.
Véase también Qt::AlignmentFlag, Qt::TextFlag, setFont(), y setPen().
void QPainter::drawTiledPixmap(const QRectF &rectangle, const QPixmap &pixmap, const QPointF &position = QPointF())
Dibuja un mosaico pixmap, dentro del rectangle dado con su origen en el position dado.
Llamar a drawTiledPixmap() es similar a llamar a drawPixmap() varias veces para rellenar (embaldosar) un área con un pixmap, pero es potencialmente mucho más eficiente dependiendo del sistema de ventanas subyacente.
drawTiledPixmap() producirá el mismo patrón visual de mosaico en pantallas de alta ppp (con devicePixelRatio > 1), en comparación con pantallas de ppp normales. Establezca el devicePixelRatio en pixmap para controlar el tamaño del mosaico. Por ejemplo, si se establece en 2, se reduce a la mitad la anchura y la altura del mosaico (tanto en pantallas 1x como 2x) y se obtiene un resultado de alta resolución en pantallas 2x.
El desplazamiento de position se proporciona en píxeles independientes del dispositivo en relación con la esquina superior izquierda de rectangle. position se puede utilizar para alinear el patrón de repetición dentro de rectangle.
Véase también drawPixmap().
void QPainter::drawTiledPixmap(const QRect &rectangle, const QPixmap &pixmap, const QPoint &position = QPoint())
Dibuja un mosaico pixmap, dentro del rectangle dado con su origen en el position dado.
Se trata de una función sobrecargada.
void QPainter::drawTiledPixmap(int x, int y, int width, int height, const QPixmap &pixmap, int sx = 0, int sy = 0)
Dibuja un mosaico pixmap en el rectángulo especificado.
(x, y) especifica el punto superior izquierdo en el dispositivo de pintura sobre el que se dibujará; con los width y height dados.
(sx, sy) especifica el origen dentro del rectángulo especificado donde se dibujará el pixmap. La posición del origen se especifica en píxeles independientes del dispositivo relativos a (x, y). El valor por defecto es (0, 0).
Esta es una función sobrecargada.
bool QPainter::end()
Finaliza el pintado. Cualquier recurso utilizado mientras se pinta se libera. Normalmente no es necesario llamar a esto ya que es llamado por el destructor.
Devuelve true si el pintor ya no está activo; en caso contrario devuelve false.
Véase también begin() y isActive().
void QPainter::endNativePainting()
Restaura el pintor después de emitir manualmente comandos de pintura nativos. Permite al pintor restaurar cualquier estado nativo del que dependa antes de llamar a cualquier otro comando de pintado.
Véase también beginNativePainting().
void QPainter::eraseRect(const QRectF &rectangle)
Borra el área dentro de la dirección rectangle. Equivale a llamar a
fillRect(rectangle, background());Véase también fillRect().
void QPainter::eraseRect(const QRect &rectangle)
Borra el área dentro de la dirección rectangle.
Se trata de una función sobrecargada.
void QPainter::eraseRect(int x, int y, int width, int height)
Borra el área dentro del rectángulo que empieza en (x, y) con los width y height dados.
Se trata de una función sobrecargada.
void QPainter::fillPath(const QPainterPath &path, const QBrush &brush)
Rellena la dirección path utilizando la dirección brush. El contorno no se dibuja.
Alternativamente, puede especificar un QColor en lugar de un QBrush; el constructor QBrush (que toma un argumento QColor ) creará automáticamente un pincel de patrón sólido.
Véase también drawPath().
void QPainter::fillRect(const QRectF &rectangle, const QBrush &brush)
Rellena el rectangle dado con el brush especificado.
Alternativamente, puede especificar un QColor en lugar de un QBrush; el constructor QBrush (que toma un argumento QColor ) creará automáticamente un pincel de patrón sólido.
Véase también drawRect().
void QPainter::fillRect(const QRect &rectangle, QGradient::Preset preset)
Rellena el rectangle dado con el gradiente especificado preset.
Se trata de una función sobrecargada.
void QPainter::fillRect(const QRect &rectangle, Qt::BrushStyle style)
Rellena el rectangle dado con el pincel style especificado.
Se trata de una función sobrecargada.
void QPainter::fillRect(const QRect &rectangle, Qt::GlobalColor color)
Rellena el rectangle dado con el color especificado.
Se trata de una función sobrecargada.
void QPainter::fillRect(const QRect &rectangle, const QBrush &brush)
Rellena el rectangle dado con el brush especificado.
Se trata de una función sobrecargada.
void QPainter::fillRect(const QRect &rectangle, const QColor &color)
Rellena el rectangle dado con el color especificado.
Se trata de una función sobrecargada.
void QPainter::fillRect(const QRectF &rectangle, QGradient::Preset preset)
Rellena el rectangle dado con el gradiente especificado preset.
Se trata de una función sobrecargada.
void QPainter::fillRect(const QRectF &rectangle, Qt::BrushStyle style)
Rellena el rectangle dado con el pincel style especificado.
Se trata de una función sobrecargada.
void QPainter::fillRect(const QRectF &rectangle, Qt::GlobalColor color)
Rellena el rectangle dado con el color especificado.
Se trata de una función sobrecargada.
void QPainter::fillRect(const QRectF &rectangle, const QColor &color)
Rellena el rectangle dado con el color especificado.
Se trata de una función sobrecargada.
void QPainter::fillRect(int x, int y, int width, int height, QGradient::Preset preset)
Rellena el rectángulo que comienza en (x, y) con los valores dados width y height, usando el gradiente dado preset.
Esta es una función sobrecargada.
void QPainter::fillRect(int x, int y, int width, int height, Qt::BrushStyle style)
Rellena el rectángulo que comienza en (x, y) con los datos width y height, utilizando el pincel style especificado.
Se trata de una función sobrecargada.
void QPainter::fillRect(int x, int y, int width, int height, Qt::GlobalColor color)
Rellena el rectángulo que comienza en (x, y) con los datos width y height, utilizando el dato color.
Se trata de una función sobrecargada.
void QPainter::fillRect(int x, int y, int width, int height, const QBrush &brush)
Rellena el rectángulo que comienza en (x, y) con los datos width y height, utilizando el dato brush.
Se trata de una función sobrecargada.
void QPainter::fillRect(int x, int y, int width, int height, const QColor &color)
Rellena el rectángulo que comienza en (x, y) con los datos width y height, utilizando el dato color.
Se trata de una función sobrecargada.
const QFont &QPainter::font() const
Devuelve la fuente actualmente utilizada para dibujar texto.
Véase también setFont(), drawText() y Settings.
QFontInfo QPainter::fontInfo() const
Devuelve la información de la fuente del pintor si el pintor está activo. En caso contrario, el valor devuelto es indefinido.
Véase también font(), isActive(), y Settings.
QFontMetrics QPainter::fontMetrics() const
Devuelve la métrica de la fuente para el pintor si el pintor está activo. En caso contrario, el valor devuelto es indefinido.
Véase también font(), isActive(), y Settings.
bool QPainter::hasClipping() const
Devuelve true si se ha establecido el recorte; en caso contrario, devuelve false.
Véase también setClipping() y Clipping.
bool QPainter::isActive() const
Devuelve true si se ha llamado a begin() y aún no se ha llamado a end(); en caso contrario devuelve false.
Véase también begin() y QPaintDevice::paintingActive().
Qt::LayoutDirection QPainter::layoutDirection() const
Devuelve la dirección de trazado utilizada por el pintor al dibujar texto.
Véase también QTextOption::textDirection(), setLayoutDirection(), drawText() y Settings.
qreal QPainter::opacity() const
Devuelve la opacidad del pintor. El valor por defecto es 1.
Véase también setOpacity().
QPaintEngine *QPainter::paintEngine() const
Devuelve el motor de pintura en el que el pintor está operando actualmente si el pintor está activo; en caso contrario 0.
Véase también isActive().
const QPen &QPainter::pen() const
Devuelve la pluma actual del pintor.
Véase también setPen() y Settings.
QPainter::RenderHints QPainter::renderHints() const
Devuelve una bandera que especifica las sugerencias de renderizado establecidas para este pintor.
Véase también setRenderHints(), testRenderHint(), y Rendering Quality.
void QPainter::resetTransform()
Restablece las transformaciones realizadas con translate(), scale(), shear(), rotate(), setWorldTransform(), setViewport() y setWindow().
Véase también Coordinate Transformations.
void QPainter::restore()
Restaura el estado actual del pintor (saca de la pila un estado guardado).
Véase también save().
void QPainter::rotate(qreal angle)
Gira el sistema de coordenadas en el sentido de las agujas del reloj. El parámetro dado angle está en grados.
Véase también setWorldTransform() y Coordinate Transformations.
void QPainter::save()
Guarda el estado actual del pintor (coloca el estado en una pila). Un save() debe ir seguido del correspondiente restore(); la función end() desenrolla la pila.
Véase también restore().
void QPainter::scale(qreal sx, qreal sy)
Escala el sistema de coordenadas en (sx, sy).
Véase también setWorldTransform() y Coordinate Transformations.
void QPainter::setBackground(const QBrush &brush)
Establece el pincel de fondo del pintor en la dirección brush.
El pincel de fondo es el pincel que se rellena al dibujar texto opaco, líneas punteadas y mapas de bits. El pincel de fondo no tiene efecto en el modo de fondo transparente (que es el predeterminado).
Véase también background(), setBackgroundMode(), y Settings.
void QPainter::setBackgroundMode(Qt::BGMode mode)
Establece el modo de fondo del pintor en el valor dado mode
Qt::TransparentMode (por defecto) dibuja líneas punteadas y texto sin establecer los píxeles de fondo. Qt::OpaqueMode rellena estos espacios con el color de fondo actual.
Tenga en cuenta que para dibujar un mapa de bits o un mapa de píxeles de forma transparente, debe utilizar QPixmap::setMask().
Véase también backgroundMode(), setBackground(), y Settings.
void QPainter::setBrush(const QBrush &brush)
Establece el pincel del pintor en la dirección brush.
El pincel del pintor define cómo se rellenan las formas.
Véase también brush() y Settings.
[since 6.11] void QPainter::setBrush(QBrush &&brush)
Esta es una función sobrecargada.
Esta función se introdujo en Qt 6.11.
[since 6.9] void QPainter::setBrush(QColor color)
Establece el pincel del pintor en un pincel sólido con la dirección color especificada.
Esta es una función sobrecargada.
Esta función se introdujo en Qt 6.9.
void QPainter::setBrush(Qt::BrushStyle style)
Establece el pincel de pintor en color negro y en la dirección style especificada.
Esta es una función sobrecargada.
[since 6.9] void QPainter::setBrush(Qt::GlobalColor color)
Establece el pincel del pintor en un pincel sólido con la dirección color especificada.
Esta es una función sobrecargada.
Esta función se introdujo en Qt 6.9.
void QPainter::setBrushOrigin(const QPointF &position)
Establece el origen del pincel en position.
El origen del pincel especifica la coordenada (0, 0) del pincel del pintor.
Ten en cuenta que mientras que brushOrigin() era necesario para adoptar el fondo del padre para un widget en Qt 3, esto ya no es así ya que el pintor de Qt 4 no pinta el fondo a menos que se lo indiques explícitamente estableciendo la propiedad autoFillBackground del widget a true.
Ver también brushOrigin() y Settings.
void QPainter::setBrushOrigin(const QPoint &position)
Establece el origen del pincel en la dirección position.
Esta es una función sobrecargada.
void QPainter::setBrushOrigin(int x, int y)
Establece el origen del pincel en el punto (x, y).
Esta es una función sobrecargada.
void QPainter::setClipPath(const QPainterPath &path, Qt::ClipOperation operation = Qt::ReplaceClip)
Activa el recorte y establece la ruta de recorte para el pintor en la dirección path, con el clip operation.
Tenga en cuenta que la ruta de recorte se especifica en coordenadas lógicas (pintor).
Véase también clipPath(), clipRegion(), y Clipping.
void QPainter::setClipRect(const QRectF &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)
Activa el recorte y establece la región de recorte en la dirección rectangle utilizando la dirección de recorte operation. La operación por defecto es reemplazar el rectángulo de recorte actual.
Tenga en cuenta que el rectángulo de recorte se especifica en coordenadas lógicas (pintor).
Véase también clipRegion(), setClipping(), y Clipping.
void QPainter::setClipRect(int x, int y, int width, int height, Qt::ClipOperation operation = Qt::ReplaceClip)
Activa el recorte y establece la región de recorte en el rectángulo que comienza en (x, y) con los valores width y height.
void QPainter::setClipRect(const QRect &rectangle, Qt::ClipOperation operation = Qt::ReplaceClip)
Activa el recorte y establece la región de recorte en la dirección rectangle utilizando la dirección de recorte operation.
Se trata de una función sobrecargada.
void QPainter::setClipRegion(const QRegion ®ion, Qt::ClipOperation operation = Qt::ReplaceClip)
Establece la región de recorte en la dirección region utilizando el clip especificado operation. La operación de clip por defecto es reemplazar la región de clip actual.
Tenga en cuenta que la región de recorte se indica en coordenadas lógicas.
Véase también clipRegion(), setClipRect() y Clipping.
void QPainter::setClipping(bool enable)
Activa el recorte si enable es verdadero, o lo desactiva si enable es falso.
Véase también hasClipping() y Clipping.
void QPainter::setCompositionMode(QPainter::CompositionMode mode)
Establece el modo de composición en la dirección mode.
Atención: Sólo un QPainter operando en un QImage soporta completamente todos los modos de composición. Los modos RasterOp están soportados para X11 como se describe en compositionMode().
Véase también compositionMode().
void QPainter::setFont(const QFont &font)
Establece el tipo de letra del pintor en font.
Esta fuente es utilizada por las siguientes funciones drawText(). El color del texto es el mismo que el del lápiz.
Si estableces un tipo de letra que no está disponible, Qt encuentra uno similar. font La función fontInfo() devolverá lo que hayas establecido con setFont() y la función () devolverá la fuente que se está utilizando (que puede ser la misma).
Véase también font(), drawText(), y Settings.
void QPainter::setLayoutDirection(Qt::LayoutDirection direction)
Establece la dirección de trazado utilizada por el pintor al dibujar texto, en el valor especificado direction.
El valor por defecto es Qt::LayoutDirectionAuto, que determinará implícitamente la dirección a partir del texto dibujado.
Véase también QTextOption::setTextDirection(), layoutDirection(), drawText(), y Settings.
void QPainter::setOpacity(qreal opacity)
Establece la opacidad del pintor en opacity. El valor debe estar entre 0,0 y 1,0, donde 0,0 es totalmente transparente y 1,0 totalmente opaco.
La opacidad establecida en el pintor se aplica a cada operación de dibujo por separado. Rellenar una forma y dibujar su contorno se tratan como operaciones de dibujo independientes.
Véase también opacity().
void QPainter::setPen(const QPen &pen)
Establece que el lápiz de pintor sea el dado pen.
pen define cómo dibujar líneas y contornos, y también define el color del texto.
Véase también pen() y Settings.
[since 6.11] void QPainter::setPen(QPen &&pen)
Esta es una función sobrecargada.
Esta función se introdujo en Qt 6.11.
void QPainter::setPen(Qt::PenStyle style)
Establece que el lápiz de pintor tenga la dirección style, la anchura 1 y el color negro.
Se trata de una función sobrecargada.
void QPainter::setPen(const QColor &color)
Establece que el lápiz del pintor tenga el estilo Qt::SolidLine, la anchura 1 y el color especificado.
Esta es una función sobrecargada.
void QPainter::setRenderHint(QPainter::RenderHint hint, bool on = true)
Establece el renderizado hint en el pintor si on es verdadero; en caso contrario, borra la sugerencia de renderizado.
Ver también setRenderHints(), renderHints(), y Rendering Quality.
void QPainter::setRenderHints(QPainter::RenderHints hints, bool on = true)
Establece la representación hints en el pintor si on es verdadero; en caso contrario, borra las sugerencias de representación.
Ver también setRenderHint(), renderHints(), y Rendering Quality.
void QPainter::setTransform(const QTransform &transform, bool combine = false)
Establece la matriz de transformación global. Si combine es verdadero, la matriz especificada transform se combina con la matriz actual; en caso contrario, reemplaza a la matriz actual.
Véase también transform() y setWorldTransform().
void QPainter::setViewTransformEnabled(bool enable)
Activa las transformaciones de vista si enable es verdadero, o desactiva las transformaciones de vista si enable es falso.
Véase también viewTransformEnabled() y Conversión ventana-puerta de vista.
void QPainter::setViewport(const QRect &rectangle)
Establece el rectángulo de la vista del pintor en la dirección rectangle y activa las transformaciones de la vista.
El rectángulo de la ventana gráfica forma parte de la transformación de la vista. La ventana gráfica especifica el sistema de coordenadas del dispositivo. Su hermana, window(), especifica el sistema de coordenadas lógico.
Por defecto, el rectángulo de la ventana gráfica es el mismo que el del dispositivo.
Véase también viewport(), viewTransformEnabled() y Conversión ventana-puerta de vista.
void QPainter::setViewport(int x, int y, int width, int height)
Establece el rectángulo de la vista del pintor como el rectángulo que comienza en (x, y) con los valores width y height.
Esta es una función sobrecargada.
void QPainter::setWindow(const QRect &rectangle)
Establece la ventana del pintor en la dirección rectangle y activa las transformaciones de la vista.
El rectángulo de la ventana forma parte de la transformación de la vista. La ventana especifica el sistema de coordenadas lógico. Su hermana, viewport(), especifica el sistema de coordenadas del dispositivo.
El rectángulo de la ventana por defecto es el mismo que el del dispositivo.
Véase también window(), viewTransformEnabled() y Conversión ventana-puerta de vista.
void QPainter::setWindow(int x, int y, int width, int height)
Establece la ventana del pintor en el rectángulo que comienza en (x, y) y los width y height dados.
Se trata de una función sobrecargada.
void QPainter::setWorldMatrixEnabled(bool enable)
Activa las transformaciones si enable es verdadero, o las desactiva si enable es falso. La matriz de transformación global no se modifica.
Véase también worldMatrixEnabled(), worldTransform(), y Coordinate Transformations.
void QPainter::setWorldTransform(const QTransform &matrix, bool combine = false)
Establece la matriz de transformación global. Si combine es verdadero, la matriz especificada matrix se combina con la matriz actual; en caso contrario, reemplaza a la matriz actual.
Véase también worldTransform(), transform() y setTransform().
void QPainter::shear(qreal sh, qreal sv)
Corta el sistema de coordenadas por (sh, sv).
Véase también setWorldTransform() y Coordinate Transformations.
void QPainter::strokePath(const QPainterPath &path, const QPen &pen)
Dibuja el contorno (trazos) de la ruta path con la pluma especificada por pen
Véase también fillPath() y Drawing.
bool QPainter::testRenderHint(QPainter::RenderHint hint) const
Devuelve true si hint está establecido; en caso contrario devuelve false.
Véase también renderHints() y setRenderHint().
const QTransform &QPainter::transform() const
Alias de worldTransform(). Devuelve la matriz de transformación del mundo.
Véase también setTransform() y worldTransform().
void QPainter::translate(const QPointF &offset)
Traslada el sistema de coordenadas por el offset dado ; es decir, el offset dado se añade a los puntos.
Véase también setWorldTransform() y Coordinate Transformations.
void QPainter::translate(const QPoint &offset)
Traslada el sistema de coordenadas mediante la dirección offset.
Se trata de una función sobrecargada.
void QPainter::translate(qreal dx, qreal dy)
Traslada el sistema de coordenadas por el vector (dx, dy).
Se trata de una función sobrecargada.
bool QPainter::viewTransformEnabled() const
Devuelve true si la transformación de la vista está activada; en caso contrario devuelve false.
Véase también setViewTransformEnabled() y worldTransform().
QRect QPainter::viewport() const
Devuelve el rectángulo de la ventana gráfica.
Véase también setViewport() y setViewTransformEnabled().
QRect QPainter::window() const
Devuelve el rectángulo de la ventana.
Véase también setWindow() y setViewTransformEnabled().
bool QPainter::worldMatrixEnabled() const
Devuelve true si la transformación del mundo está activada; en caso contrario devuelve false.
Ver también setWorldMatrixEnabled(), worldTransform(), y Sistema de coordenadas.
const QTransform &QPainter::worldTransform() const
Devuelve la matriz de transformación del mundo.
Véase también setWorldTransform().
© 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.






















