QSGTextNode Class
La clase QSGTextNode es una clase para dibujar diseños de texto y documentos de texto en el gráfico de escena Qt Quick. Más...
| Cabecera: | #include <QSGTextNode> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Quick)target_link_libraries(mytarget PRIVATE Qt6::Quick) |
| qmake: | QT += quick |
| Desde: | Qt 6.7 |
| Hereda: | QSGTransformNode |
Tipos Públicos
| enum | RenderType { QtRendering, NativeRendering, CurveRendering } |
| enum | TextStyle { Normal, Outline, Raised, Sunken } |
Funciones Públicas
| void | addTextDocument(QPointF position, QTextDocument *document, int selectionStart = -1, int selectionCount = -1) |
| void | addTextLayout(QPointF position, QTextLayout *layout, int selectionStart = -1, int selectionCount = -1, int lineStart = 0, int lineCount = -1) |
| virtual void | clear() = 0 |
| virtual QColor | color() const = 0 |
| virtual QSGTexture::Filtering | filtering() const = 0 |
| virtual QColor | linkColor() const = 0 |
| virtual QSGTextNode::RenderType | renderType() const = 0 |
| virtual int | renderTypeQuality() const = 0 |
| virtual QColor | selectionColor() const = 0 |
| virtual QColor | selectionTextColor() const = 0 |
| virtual void | setColor(QColor color) = 0 |
| virtual void | setFiltering(QSGTexture::Filtering filtering) = 0 |
| virtual void | setLinkColor(QColor linkColor) = 0 |
| virtual void | setRenderType(QSGTextNode::RenderType renderType) = 0 |
| virtual void | setRenderTypeQuality(int renderTypeQuality) = 0 |
| virtual void | setSelectionColor(QColor color) = 0 |
| virtual void | setSelectionTextColor(QColor selectionTextColor) = 0 |
| virtual void | setStyleColor(QColor styleColor) = 0 |
| virtual void | setTextStyle(QSGTextNode::TextStyle textStyle) = 0 |
| virtual void | setViewport(const QRectF &viewport) = 0 |
| virtual QColor | styleColor() const = 0 |
| virtual QSGTextNode::TextStyle | textStyle() = 0 |
| virtual QRectF | viewport() const = 0 |
Funciones Privadas
| virtual void | doAddTextDocument(QPointF position, QTextDocument *document, int selectionStart, int selectionCount) = 0 |
| virtual void | doAddTextLayout(QPointF position, QTextLayout *layout, int selectionStart, int selectionCount, int lineStart, int lineCount) = 0 |
Descripción Detallada
QSGTextNode puede ser útil para crear elementos personalizados de Qt Quick que requieran texto. Es utilizado en Qt Quick por los elementos Text, TextEdit y TextInput.
Puede crear objetos QSGTextNode utilizando QQuickWindow::createTextNode(). Las funciones addTextLayout() y addTextDocument() permiten añadir texto al QSGTextNode. El texto debe estar ya maquetado.
Nota: Las propiedades deben establecerse antes de llamar a addTextLayout() o addTextDocument() para que tengan efecto.
Nota: La destrucción de QSGTextNode debe gestionarse con cuidado. En particular, dado que hace referencia a recursos gráficos, debe borrarse cuando se invalide el gráfico de escena Qt Quick. Si el nodo forma parte del gráfico y tiene activada la bandera OwnedByParent (que es la opción por defecto), esto ocurrirá automáticamente. Sin embargo, si el indicador OwnedByParent está desactivado y el nodo se elimina manualmente, debe tenerse cuidado de hacerlo cuando se invalide el gráfico de escena. Esto se puede hacer conectándose a la señal QQuickWindow::sceneGraphInvalidated(), o implementando una ranura en la subclase QQuickItem que se llama invalidateSceneGraph(). Véase también la documentación de QQuickItem para más detalles.
Documentación de tipos de miembros
enum QSGTextNode::RenderType
Este tipo enum describe el tipo de nodo glífico utilizado para representar el texto.
| Constante | Valor | Descripción |
|---|---|---|
QSGTextNode::QtRendering | 0 | El texto se renderiza utilizando un campo de distancia escalable para cada glifo. |
QSGTextNode::NativeRendering | 1 | El texto se renderiza utilizando una técnica específica de la plataforma. |
QSGTextNode::CurveRendering | 2 | El texto se renderiza utilizando un rasterizador de curvas que se ejecuta directamente en el hardware de gráficos. |
Seleccione NativeRendering si prefiere que el texto tenga un aspecto nativo en la plataforma de destino y no necesita funciones avanzadas como la transformación del texto. El uso de tales características en combinación con el tipo de renderizado NativeRendering dará resultados pobres y a veces pixelados.
Tanto Text.QtRendering como Text.CurveRendering son técnicas aceleradas por hardware. QtRendering es la más rápida de las dos, pero utiliza más memoria y mostrará artefactos de renderizado en tamaños grandes. CurveRendering debería considerarse una alternativa en los casos en los que QtRendering no ofrezca buenos resultados visuales o en los que reducir el consumo de memoria gráfica sea una prioridad.
Véase también setRenderType() y setRenderTypeQuality().
enum QSGTextNode::TextStyle
Este tipo enum describe los estilos que pueden aplicarse a la representación del texto.
| Constante | Valor | Descripción |
|---|---|---|
QSGTextNode::Normal | 0 | El texto se dibuja sin ningún estilo aplicado. |
QSGTextNode::Outline | 1 | El texto se dibuja con un contorno. |
QSGTextNode::Raised | 2 | El texto se dibuja en relieve. |
QSGTextNode::Sunken | 3 | El texto se dibuja hundido. |
Véase también setTextStyle() y setStyleColor().
Documentación de las funciones miembro
void QSGTextNode::addTextDocument(QPointF position, QTextDocument *document, int selectionStart = -1, int selectionCount = -1)
Añade el contenido de document al nodo de texto en position. Si selectionStart es >= 0, entonces esto marca el primer carácter en un área seleccionada de selectionCount número de caracteres. La selección se representa como un relleno de fondo con selectionColor() y el texto seleccionado se representa en selectionTextColor().
Esta función reenvía sus argumentos a la función virtual doAddTextDocument().
Véase también clear().
void QSGTextNode::addTextLayout(QPointF position, QTextLayout *layout, int selectionStart = -1, int selectionCount = -1, int lineStart = 0, int lineCount = -1)
Añade el contenido de layout al nodo de texto en position. Si selectionStart es >= 0, entonces esto marca el primer carácter en un área seleccionada de selectionCount número de caracteres. La selección se representa como un relleno de fondo con selectionColor() y el texto seleccionado se representa en selectionTextColor().
Para mayor comodidad, lineStart y lineCount pueden utilizarse para seleccionar el rango de objetos QTextLine a incluir en el diseño. Esto puede ser útil, por ejemplo, al crear diseños elididos. Si lineCount es < 0, el nodo incluirá las líneas desde lineStart hasta el final del diseño.
Esta función envía sus argumentos a la función virtual doAddTextLayout().
Véase también clear().
[pure virtual] void QSGTextNode::clear()
Borra el contenido del nodo, eliminando los nodos y otros datos que representan los diseños y documentos que se le han añadido.
Véase también addTextLayout() y addTextDocument().
[pure virtual] QColor QSGTextNode::color() const
Devuelve el color principal utilizado al renderizar el texto.
Véase también setColor().
[pure virtual private] void QSGTextNode::doAddTextDocument(QPointF position, QTextDocument *document, int selectionStart, int selectionCount)
Función virtual llamada por addTextDocument(), que convierte el contenido de document en nodos del gráfico de escena y los añade al nodo actual en position.
Si selectionStart es >= 0, entonces esto marca el primer carácter en un área seleccionada de selectionCount número de caracteres. La selección se representa como un relleno de fondo con selectionColor() y el texto seleccionado se renderiza en selectionTextColor().
Véase también clear() y addTextDocument().
[pure virtual private] void QSGTextNode::doAddTextLayout(QPointF position, QTextLayout *layout, int selectionStart, int selectionCount, int lineStart, int lineCount)
Función virtual llamada por addTextLayout(), que convierte el contenido de layout en nodos del gráfico de escena y los añade al nodo actual en position.
Si selectionStart es >= 0, entonces esto marca el primer carácter en un área seleccionada de selectionCount número de caracteres. La selección se representa como un relleno de fondo con el selectionColor() y el texto seleccionado se renderiza en el selectionTextColor().
Para mayor comodidad, lineStart y lineCount pueden utilizarse para seleccionar el rango de objetos QTextLine a incluir en el diseño. Esto puede ser útil, por ejemplo, al crear diseños elididos. Si lineCount es < 0, el nodo incluirá las líneas desde lineStart hasta el final del diseño.
Véase también clear() y addTextLayout().
[pure virtual] QSGTexture::Filtering QSGTextNode::filtering() const
Devuelve el modo de muestreo utilizado al escalar imágenes que forman parte del texto mostrado.
Véase también setFiltering().
[pure virtual] QColor QSGTextNode::linkColor() const
Devuelve el color de los hipervínculos en el texto.
Véase también setLinkColor().
[pure virtual] QSGTextNode::RenderType QSGTextNode::renderType() const
Devuelve el tipo de nodo glifo utilizado para renderizar el texto.
Véase también setRenderType().
[pure virtual] int QSGTextNode::renderTypeQuality() const
Devuelve la calidad del tipo de renderizado del nodo. Véase setRenderTypeQuality() para más detalles.
Véase también setRenderTypeQuality().
[pure virtual] QColor QSGTextNode::selectionColor() const
Devuelve el color del fondo de la selección cuando alguna parte del texto está marcada como seleccionada.
Véase también setSelectionColor().
[pure virtual] QColor QSGTextNode::selectionTextColor() const
Devuelve el color del texto de selección cuando alguna parte del texto está marcada como seleccionada.
Véase también setSelectionTextColor().
[pure virtual] void QSGTextNode::setColor(QColor color)
Establece el color principal que se utilizará al renderizar el texto en color.
Por defecto es negro: QColor(0, 0, 0).
Véase también color().
[pure virtual] void QSGTextNode::setFiltering(QSGTexture::Filtering filtering)
Establece el modo de muestreo utilizado al escalar imágenes que forman parte del texto mostrado en filtering. Para imágenes escaladas suavemente, utilice aquí QSGTexture::Linear.
El valor predeterminado es QSGTexture::Nearest.
Véase también filtering().
[pure virtual] void QSGTextNode::setLinkColor(QColor linkColor)
Establece el color de o hipervínculos a linkColor en el texto.
Por defecto es azul: QColor(0, 0, 255).
Véase también linkColor().
[pure virtual] void QSGTextNode::setRenderType(QSGTextNode::RenderType renderType)
Establece el tipo de nodo glífico en uso en renderType.
Por defecto es QtRendering.
Véase también renderType().
[pure virtual] void QSGTextNode::setRenderTypeQuality(int renderTypeQuality)
Si el renderType() en uso lo soporta, establece la calidad a utilizar al renderizar el texto. Si es compatible, puede utilizarse para cambiar la fidelidad visual por la velocidad de ejecución o la memoria.
Cuando renderTypeQuality es < 0, se utiliza la calidad por defecto.
renderTypeQuality puede ser cualquier número entero, aunque pueden aparecer limitaciones impuestas por el hardware de gráficos subyacente si se establecen valores extremos. El elemento de texto Qt Quick funciona con los siguientes valores predefinidos:
| Constante | Descripción |
|---|---|
DefaultRenderTypeQuality | -1 (por defecto) |
LowRenderTypeQuality | 26 |
NormalRenderTypeQuality | 52 |
HighRenderTypeQuality | 104 |
VeryHighRenderTypeQuality | 208 |
Este valor sólo es respetado actualmente por el tipo de render QtRendering. Este valor cambia la resolución de los campos de distancia utilizados para representar los glifos. Establecerlo por encima de lo normal hará que aumente el consumo de memoria, pero reduce los artefactos de filtrado en textos muy grandes.
El valor por defecto es -1.
Véase también renderTypeQuality().
[pure virtual] void QSGTextNode::setSelectionColor(QColor color)
Establece el color del fondo de la selección en color cuando cualquier parte del texto está marcada como seleccionada.
Por defecto es azul oscuro: QColor(0, 0, 128).
Véase también selectionColor().
[pure virtual] void QSGTextNode::setSelectionTextColor(QColor selectionTextColor)
Establece el color del texto de selección en selectionTextColor cuando cualquier parte del texto está marcada como seleccionada.
Por defecto es blanco: QColor(255, 255, 255).
Véase también selectionTextColor().
[pure virtual] void QSGTextNode::setStyleColor(QColor styleColor)
Establece el color del estilo que se utilizará al representar el texto en styleColor.
Por defecto es negro: QColor(0, 0, 0).
Véase también styleColor() y setTextStyle().
[pure virtual] void QSGTextNode::setTextStyle(QSGTextNode::TextStyle textStyle)
Establece el estilo del texto renderizado en textStyle. Por defecto es Normal.
Véase también textStyle() y setStyleColor().
[pure virtual] void QSGTextNode::setViewport(const QRectF &viewport)
Establece el rectángulo delimitador de la ventana donde se muestra el texto en viewport. Al proporcionar esta información, QSGTextNode puede optimizar qué partes del diseño del texto o del documento se incluyen en el gráfico de la escena.
El valor predeterminado es QRectF. Para esta ventana gráfica, todos los contenidos se incluirán en el gráfico.
Véase también viewport().
[pure virtual] QColor QSGTextNode::styleColor() const
Devuelve el color del estilo utilizado al renderizar el texto.
Véase también setStyleColor() y textStyle().
[pure virtual] QSGTextNode::TextStyle QSGTextNode::textStyle()
Devuelve el estilo del texto renderizado.
Véase también setTextStyle() y styleColor().
[pure virtual] QRectF QSGTextNode::viewport() const
Devuelve el conjunto de vistas actual para este QSGTextNode.
Véase también setViewport().
© 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.