En esta página

Dibujar y rellenar

Dibujo

QPainter proporciona funciones altamente optimizadas para realizar la mayoría de los dibujos que requieren los programas GUI. Puede dibujar desde simples primitivas gráficas (representadas por las clases QPoint, QLine, QRect, QRegion y QPolygon ) hasta formas complejas como trazados vectoriales. En Qt, las rutas vectoriales están representadas por la clase QPainterPath. QPainterPath proporciona un contenedor para operaciones de pintura, permitiendo construir y reutilizar formas gráficas.

Logotipo Qt

QPainterPath

Un trazado de pintor es un objeto compuesto por líneas y curvas. Por ejemplo, un rectángulo está compuesto por líneas y una elipse por curvas.

La principal ventaja de los trazados de pintor sobre las operaciones normales de dibujo es que las formas complejas sólo necesitan crearse una vez; luego pueden dibujarse muchas veces utilizando únicamente llamadas a la función QPainter::drawPath().

Un objeto QPainterPath puede utilizarse para rellenar, contornear y recortar. Para generar contornos rellenables para un trazado de pintor dado, utilice la clase QPainterPathStroker.

Las líneas y los contornos se dibujan con la clase QPen. Una pluma se define por su estilo (es decir, su tipo de línea), anchura, pincel, cómo se dibujan los puntos finales (estilo de tapa) y cómo se dibujan las uniones entre dos líneas conectadas (estilo de unión). El pincel del lápiz es un objeto QBrush que se utiliza para rellenar los trazos generados con el lápiz, es decir, la clase QBrush define el patrón de relleno.

QPainter también puede dibujar texto alineado y mapas de píxeles.

Al dibujar texto, la fuente se especifica utilizando la clase QFont. Qt utilizará la fuente con los atributos especificados, o si no existe una fuente coincidente, Qt utilizará la fuente instalada más parecida. Los atributos de la fuente que se utiliza realmente se pueden recuperar utilizando la clase QFontInfo. Además, la clase QFontMetrics proporciona las medidas de la fuente, y la clase QFontDatabase proporciona información sobre las fuentes disponibles en el sistema de ventanas subyacente.

Normalmente, QPainter dibuja en un sistema de coordenadas "natural", pero es capaz de realizar transformaciones de vista y mundo utilizando la clase QTransform. Para más información, véase Sistema de coordenadas, donde también se describe el proceso de renderizado, es decir, la relación entre la representación lógica y los píxeles renderizados, y las ventajas del pintado suavizado.

Pintado con suavizado

Al dibujar, el renderizado de píxeles se controla mediante la sugerencia de renderizado QPainter::Antialiasing. El enum QPainter::RenderHint se utiliza para especificar banderas a QPainter que pueden o no ser respetadas por cualquier motor dado.

El valor QPainter::Antialiasing indica que el motor debe antialiasear los bordes de las primitivas si es posible, es decir, suavizar los bordes utilizando diferentes intensidades de color.

Captura de pantalla de un dibujo renderizado con antialiasing

Relleno

Las formas se rellenan utilizando la clase QBrush. Un pincel se define por su color y su estilo (es decir, su patrón de relleno).

Cualquier color en Qt se representa mediante la clase QColor, que admite los modelos de color RGB, HSV y CMYK. QColor también admite contornos y rellenos con mezcla alfa (especificando el efecto de transparencia), y la clase es independiente de la plataforma y el dispositivo. Para más información, consulte la documentación de la clase QColor.

Los patrones de relleno disponibles se describen en el enum Qt::BrushStyle. Entre ellos se incluyen patrones básicos que van desde el color uniforme hasta patrones muy dispersos, varias combinaciones de líneas, rellenos de degradado y texturas. Qt proporciona la clase QGradient para definir rellenos de degradado personalizados, mientras que los patrones de textura se especifican utilizando la clase QPixmap.

Captura de pantalla del ejemplo de degradado

QGradient

La clase QGradient se utiliza en combinación con QBrush para especificar rellenos de degradado.

Ilustración que muestra tres formas diferentes de utilizar los degradados.

Qt soporta actualmente tres tipos de rellenos de degradado: Los degradados lineales interpolan colores entre los puntos inicial y final, los degradados radiales interpolan colores entre un punto focal y los puntos finales de un círculo que lo rodea, y los degradados cónicos interpolan colores alrededor de un punto central.

© 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.