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.
| Constante | Valeur | Description |
|---|---|---|
QSGTextNode::QtRendering | 0 | Le texte est rendu à l'aide d'un champ de distance modulable pour chaque glyphe. |
QSGTextNode::NativeRendering | 1 | Le texte est rendu à l'aide d'une technique spécifique à la plate-forme. |
QSGTextNode::CurveRendering | 2 | Le 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.
| Constante | Valeur | Description |
|---|---|---|
QSGTextNode::Normal | 0 | Le texte est dessiné sans aucun style. |
QSGTextNode::Outline | 1 | Le texte est dessiné avec un contour. |
QSGTextNode::Raised | 2 | Le texte est dessiné en relief. |
QSGTextNode::Sunken | 3 | Le 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 :
| Constante | Description |
|---|---|
DefaultRenderTypeQuality | -1 (par défaut) |
LowRenderTypeQuality | 26 |
NormalRenderTypeQuality | 52 |
HighRenderTypeQuality | 104 |
VeryHighRenderTypeQuality | 208 |
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.