Sur cette page

QSGTextNode Class

La classe QSGTextNode est une classe permettant de dessiner des dispositions de texte et des documents textuels dans le graphe de scène Qt Quick. Plus d'informations...

En-tête : #include <QSGTextNode>
CMake : find_package(Qt6 REQUIRED COMPONENTS Quick)
target_link_libraries(mytarget PRIVATE Qt6::Quick)
qmake : QT += quick
Depuis : Qt 6.7
Hérite : QSGTransformNode

Types publics

enum RenderType { QtRendering, NativeRendering, CurveRendering }
enum TextStyle { Normal, Outline, Raised, Sunken }

Fonctions publiques

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

Fonctions privées

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

Description détaillée

QSGTextNode peut être utile pour créer des éléments Qt Quick personnalisés qui nécessitent du texte. Il est utilisé dans Qt Quick par les éléments Text, TextEdit et TextInput.

Vous pouvez créer des objets QSGTextNode à l'aide de QQuickWindow::createTextNode(). Les fonctions addTextLayout() et addTextDocument() permettent d'ajouter du texte au QSGTextNode. Le texte doit déjà être mis en page.

Remarque : les propriétés doivent être définies avant que les fonctions addTextLayout() ou addTextDocument() ne soient appelées pour qu'elles aient un effet.

Remarque : la destruction du QSGTextNode doit être gérée avec précaution. En particulier, comme il fait référence à des ressources graphiques, il doit être supprimé lorsque le graphe de la scène Qt Quick est invalidé. Si le nœud fait partie du graphe et que l'indicateur OwnedByParent est activé (ce qui est le cas par défaut), cela se produit automatiquement. Toutefois, si l'indicateur OwnedByParent est désactivé et que le nœud est supprimé manuellement, il faut veiller à le faire lorsque le graphe de scène est invalidé. Cela peut être fait en se connectant au signal QQuickWindow::sceneGraphInvalidated(), ou en implémentant un slot dans la sous-classe QQuickItem qui est nommée invalidateSceneGraph(). Voir également la documentation de QQuickItem pour plus de détails.

Documentation des types de membres

enum QSGTextNode::RenderType

Ce type d'énumération décrit le type de nœud de glyphe utilisé pour le rendu du texte.

ConstanteValeurDescription
QSGTextNode::QtRendering0Le texte est rendu à l'aide d'un champ de distance modulable pour chaque glyphe.
QSGTextNode::NativeRendering1Le texte est rendu à l'aide d'une technique spécifique à la plate-forme.
QSGTextNode::CurveRendering2Le texte est rendu à l'aide d'un rasterizer de courbes fonctionnant directement sur le matériel graphique.

Sélectionnez NativeRendering si vous préférez que le texte ait un aspect natif sur la plateforme cible et que vous n'avez pas besoin de fonctions avancées telles que la transformation du texte. L'utilisation de ces fonctions en combinaison avec le type de rendu NativeRendering donnera des résultats médiocres et parfois pixellisés.

Text.QtRendering et Text.CurveRendering sont des techniques accélérées par le matériel. QtRendering est la plus rapide des deux, mais elle utilise plus de mémoire et présente des artefacts de rendu à grande échelle. CurveRendering doit être considéré comme une alternative dans les cas où QtRendering ne donne pas de bons résultats visuels ou lorsque la réduction de la consommation de mémoire graphique est une priorité.

Voir également setRenderType() et setRenderTypeQuality().

enum QSGTextNode::TextStyle

Ce type d'énumération décrit les styles qui peuvent être appliqués au rendu du texte.

ConstanteValeurDescription
QSGTextNode::Normal0Le texte est dessiné sans aucun style.
QSGTextNode::Outline1Le texte est dessiné avec un contour.
QSGTextNode::Raised2Le texte est dessiné en relief.
QSGTextNode::Sunken3Le texte est dessiné en creux.

Voir également setTextStyle() et setStyleColor().

Documentation des fonctions membres

void QSGTextNode::addTextDocument(QPointF position, QTextDocument *document, int selectionStart = -1, int selectionCount = -1)

Ajoute le contenu de document au nœud de texte à position. Si selectionStart est >= 0, cela marque le premier caractère d'une zone sélectionnée de selectionCount nombre de caractères. La sélection est représentée comme un remplissage d'arrière-plan avec la fonction selectionColor() et le texte sélectionné est rendu dans la fonction selectionTextColor().

Cette fonction transmet ses arguments à la fonction virtuelle doAddTextDocument().

Voir également clear().

void QSGTextNode::addTextLayout(QPointF position, QTextLayout *layout, int selectionStart = -1, int selectionCount = -1, int lineStart = 0, int lineCount = -1)

Ajoute le contenu de layout au nœud de texte à position. Si selectionStart est >= 0, cela marque le premier caractère d'une zone sélectionnée de selectionCount nombre de caractères. La sélection est représentée comme un remplissage d'arrière-plan avec selectionColor() et le texte sélectionné est rendu dans selectionTextColor().

Pour plus de commodité, lineStart et lineCount peuvent être utilisés pour sélectionner la gamme d'objets QTextLine à inclure dans la mise en page. Cela peut s'avérer utile, par exemple, pour créer des mises en page élidées. Si lineCount est < 0, le nœud inclura les lignes à partir de lineStart jusqu'à la fin de la mise en page.

Cette fonction transmet ses arguments à la fonction virtuelle doAddTextLayout().

Voir également clear().

[pure virtual] void QSGTextNode::clear()

Efface le contenu du nœud, en supprimant les nœuds et les autres données représentant les présentations et les documents qui y ont été ajoutés.

Voir également addTextLayout() et addTextDocument().

[pure virtual] QColor QSGTextNode::color() const

Renvoie la couleur principale utilisée lors du rendu du texte.

Voir aussi setColor().

[pure virtual private] void QSGTextNode::doAddTextDocument(QPointF position, QTextDocument *document, int selectionStart, int selectionCount)

Fonction virtuelle appelée par addTextDocument(), qui convertit le contenu de document en nœuds de graphe de scène et les ajoute au nœud actuel à position.

Si selectionStart est >= 0, cette fonction marque le premier caractère d'une zone sélectionnée de selectionCount nombre de caractères. La sélection est représentée comme un remplissage d'arrière-plan avec selectionColor() et le texte sélectionné est rendu dans selectionTextColor().

Voir également clear() et addTextDocument().

[pure virtual private] void QSGTextNode::doAddTextLayout(QPointF position, QTextLayout *layout, int selectionStart, int selectionCount, int lineStart, int lineCount)

Fonction virtuelle appelée par addTextLayout(), qui convertit le contenu de layout en nœuds de graphe de scène et les ajoute au nœud actuel à position.

Si selectionStart est >= 0, cette fonction marque le premier caractère d'une zone sélectionnée de selectionCount nombre de caractères. La sélection est représentée comme un remplissage d'arrière-plan avec selectionColor() et le texte sélectionné est rendu dans selectionTextColor().

Pour plus de commodité, lineStart et lineCount peuvent être utilisés pour sélectionner la gamme d'objets QTextLine à inclure dans la mise en page. Cela peut s'avérer utile, par exemple, pour créer des mises en page élidées. Si lineCount est < 0, le nœud inclura les lignes à partir de lineStart jusqu'à la fin de la mise en page.

Voir également clear() et addTextLayout().

[pure virtual] QSGTexture::Filtering QSGTextNode::filtering() const

Renvoie le mode d'échantillonnage utilisé lors de la mise à l'échelle des images qui font partie du texte affiché.

Voir aussi setFiltering().

[pure virtual] QColor QSGTextNode::linkColor() const

Renvoie la couleur des hyperliens dans le texte.

Voir aussi setLinkColor().

[pure virtual] QSGTextNode::RenderType QSGTextNode::renderType() const

Renvoie le type de nœud de glyphe utilisé pour le rendu du texte.

Voir aussi setRenderType().

[pure virtual] int QSGTextNode::renderTypeQuality() const

Renvoie la qualité du type de rendu du nœud. Voir setRenderTypeQuality() pour plus de détails.

Voir aussi setRenderTypeQuality().

[pure virtual] QColor QSGTextNode::selectionColor() const

Renvoie la couleur de l'arrière-plan de la sélection lorsqu'une partie du texte est marquée comme étant sélectionnée.

Voir également setSelectionColor().

[pure virtual] QColor QSGTextNode::selectionTextColor() const

Renvoie la couleur du texte de sélection lorsqu'une partie du texte est marquée comme étant sélectionnée.

Voir également setSelectionTextColor().

[pure virtual] void QSGTextNode::setColor(QColor color)

Définit la couleur principale à utiliser lors du rendu du texte à color.

La valeur par défaut est le noir : QColor(0, 0, 0).

Voir aussi color().

[pure virtual] void QSGTextNode::setFiltering(QSGTexture::Filtering filtering)

Définit le mode d'échantillonnage utilisé lors de la mise à l'échelle des images qui font partie du texte affiché sur filtering. Pour les images dont la mise à l'échelle est lisse, utilisez ici QSGTexture::Linear.

La valeur par défaut est QSGTexture::Nearest.

Voir aussi filtering().

[pure virtual] void QSGTextNode::setLinkColor(QColor linkColor)

Définit la couleur des hyperliens vers linkColor dans le texte.

La couleur par défaut est le bleu : QColor(0, 0, 255).

Voir aussi linkColor().

[pure virtual] void QSGTextNode::setRenderType(QSGTextNode::RenderType renderType)

Définit le type de nœud de glyphe utilisé à renderType.

La valeur par défaut est QtRendering.

Voir aussi renderType().

[pure virtual] void QSGTextNode::setRenderTypeQuality(int renderTypeQuality)

Si le site renderType() utilisé le prend en charge, définissez la qualité à utiliser pour le rendu du texte. Lorsqu'elle est prise en charge, cette qualité peut être utilisée pour échanger la fidélité visuelle contre la vitesse d'exécution ou la mémoire.

Lorsque renderTypeQuality est < 0, la qualité par défaut est utilisée.

La valeur renderTypeQuality peut être n'importe quel nombre entier, bien que des limitations imposées par le matériel graphique sous-jacent puissent être rencontrées si des valeurs extrêmes sont définies. L'élément Qt Quick Text fonctionne avec les valeurs prédéfinies suivantes :

ConstanteDescription
DefaultRenderTypeQuality-1 (par défaut)
LowRenderTypeQuality26
NormalRenderTypeQuality52
HighRenderTypeQuality104
VeryHighRenderTypeQuality208

Cette valeur n'est actuellement respectée que par le type de rendu QtRendering. Elle modifie la résolution des champs de distance utilisés pour représenter les glyphes. Une valeur supérieure à la normale entraîne une augmentation de la consommation de mémoire, mais réduit les artefacts de filtrage sur les textes de très grande taille.

La valeur par défaut est -1.

Voir aussi renderTypeQuality().

[pure virtual] void QSGTextNode::setSelectionColor(QColor color)

Définit la couleur de l'arrière-plan de la sélection à color lorsqu'une partie du texte est marquée comme étant sélectionnée.

La couleur par défaut est le bleu foncé : QColor(0, 0, 128).

Voir aussi selectionColor().

[pure virtual] void QSGTextNode::setSelectionTextColor(QColor selectionTextColor)

Définit la couleur du texte de sélection à selectionTextColor lorsqu'une partie du texte est marquée comme étant sélectionnée.

La couleur par défaut est le blanc : QColor(255, 255, 255).

Voir également selectionTextColor().

[pure virtual] void QSGTextNode::setStyleColor(QColor styleColor)

Définit la couleur de style à utiliser lors du rendu du texte à styleColor.

La valeur par défaut est le noir : QColor(0, 0, 0).

Voir aussi styleColor() et setTextStyle().

[pure virtual] void QSGTextNode::setTextStyle(QSGTextNode::TextStyle textStyle)

Définit le style du texte rendu à textStyle. La valeur par défaut est Normal.

Voir aussi textStyle() et setStyleColor().

[pure virtual] void QSGTextNode::setViewport(const QRectF &viewport)

Définit le rectangle de délimitation de la fenêtre de visualisation dans laquelle le texte est affiché à viewport. Cette information permet à QSGTextNode d'optimiser les parties de la mise en page du texte ou du document qui sont incluses dans le graphe de scène.

La valeur par défaut est une construction par défaut QRectF. Pour cette fenêtre, tout le contenu sera inclus dans le graphique.

Voir également viewport().

[pure virtual] QColor QSGTextNode::styleColor() const

Renvoie la couleur de style utilisée lors du rendu du texte.

Voir aussi setStyleColor() et textStyle().

[pure virtual] QSGTextNode::TextStyle QSGTextNode::textStyle()

Renvoie le style du texte rendu.

Voir aussi setTextStyle() et styleColor().

[pure virtual] QRectF QSGTextNode::viewport() const

Renvoie le jeu de fenêtres actuel pour ce site QSGTextNode.

Voir aussi 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.