QSGTextNode Class
La classe QSGTextNode permet de dessiner des mises en page de texte et des documents textuels dans le graphe de scène d'Qt Quick. En savoir plus...
| 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 de : | 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 s’avérer utile pour créer des éléments personnalisés de type « Qt Quick » nécessitant 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 la méthode QQuickWindow::createTextNode(). Les fonctions addTextLayout() et addTextDocument() permettent d'ajouter du texte au QSGTextNode. Le texte doit déjà avoir été mis en page.
Remarque : les propriétés doivent être définies avant l’appel de addTextLayout() ou addTextDocument() pour prendre effet.
Remarque : la destruction du QSGTextNode doit être gérée avec soin. En particulier, comme il fait référence à des ressources graphiques, il doit être supprimé lorsque le graphe de 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 produira automatiquement. Toutefois, si le drapeau « OwnedByParent » est désactivé et que le nœud est supprimé manuellement, il faut veiller à effectuer cette opération lorsque le graphe de scène est invalidé. Cela peut se faire en se connectant au signal « QQuickWindow::sceneGraphInvalidated() », ou en implémentant un slot dans la sous-classe « QQuickItem » nommé « invalidateSceneGraph() ». Voir également la documentation de « QQuickItem » pour plus de détails.
Documentation sur les 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 affiché à l'aide d'un champ de distance évolutif 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 rastériseur de courbes s’exécutant directement sur le matériel graphique. |
Sélectionnez « NativeRendering » si vous préférez que le texte s'affiche de manière native sur la plateforme cible et si vous n'avez pas besoin de fonctionnalités avancées telles que la transformation du texte. L'utilisation de ces fonctionnalités en combinaison avec le type de rendu «NativeRendering» donnera des résultats médiocres et parfois pixélisés.
Text.QtRendering et Text.CurveRendering sont toutes deux des techniques accélérées par le matériel. QtRendering est la plus rapide des deux, mais utilise davantage de mémoire et présente des artefacts de rendu à grande échelle. CurveRendering doit être envisagé 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 pouvant être appliqués au rendu du texte.
| Constante | Valeur | Description |
|---|---|---|
QSGTextNode::Normal | 0 | Le texte est affiché sans aucun style appliqué. |
QSGTextNode::Outline | 1 | Le texte est affiché avec un contour. |
QSGTextNode::Raised | 2 | Le texte est affiché en relief. |
QSGTextNode::Sunken | 3 | Le texte est affiché 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 situé à l'adresse 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 sous forme de remplissage d'arrière-plan à l'aide de la fonction selectionColor() et le texte sélectionné est affiché à l'aide de 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 situé à l'adresse 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 sous forme de remplissage d'arrière-plan à l'aide de la fonction selectionColor() et le texte sélectionné est affiché à l'aide de la fonction selectionTextColor().
Pour plus de commodité, les fonctions lineStart et lineCount peuvent être utilisées pour sélectionner la plage d’objets QTextLine à inclure dans la mise en page. Cela peut s’avérer utile, par exemple, lors de la création de mises en page elidées. Si lineCount est < 0, alors le nœud inclura les lignes comprises entre lineStart et 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 autres données correspondant aux mises en page et aux 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 du graphe de scène et les ajoute au nœud actuel à l'adresse ` position`.
Si selectionStart est >= 0, cela désigne le premier caractère d’une zone sélectionnée de selectionCount nombre de caractères. La sélection est représentée sous forme de remplissage d’arrière-plan avec la fonction selectionColor() et le texte sélectionné est affiché dans la fonction 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 du graphe de scène et les ajoute au nœud actuel à l'adresse ` position`.
Si selectionStart est >= 0, cela marque alors le premier caractère d’une zone sélectionnée de selectionCount nombre de caractères. La sélection est représentée sous forme de remplissage d’arrière-plan avec la fonction selectionColor() et le texte sélectionné est affiché dans la fonction selectionTextColor().
Pour plus de commodité, les fonctions ` lineStart ` et ` lineCount ` peuvent être utilisées pour sélectionner la plage d'objets ` QTextLine ` à inclure dans la mise en page. Cela peut s'avérer utile, par exemple, lors de la création de mises en page elidées. Si ` lineCount ` est inférieur à 0, le nœud inclura alors les lignes comprises entre ` lineStart ` et 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 faisant partie du texte affiché.
Voir également setFiltering().
[pure virtual] QColor QSGTextNode::linkColor() const
Renvoie la couleur des liens hypertextes 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 rendu du nœud. Voir setRenderTypeQuality() pour plus de détails.
Voir également setRenderTypeQuality().
[pure virtual] QColor QSGTextNode::selectionColor() const
Renvoie la couleur de l'arrière-plan de la sélection lorsqu'une partie quelconque du texte est marquée comme sélectionnée.
Voir aussi setSelectionColor().
[pure virtual] QColor QSGTextNode::selectionTextColor() const
Renvoie la couleur du texte sélectionné lorsqu'une partie quelconque de ce texte est marquée comme sélectionnée.
Voir aussi setSelectionTextColor().
[pure virtual] void QSGTextNode::setColor(QColor color)
Définit la couleur principale à utiliser lors du rendu du texte sur color.
La valeur par défaut est le noir : QColor(0, 0, 0).
Voir également color().
[pure virtual] void QSGTextNode::setFiltering(QSGTexture::Filtering filtering)
Définit le mode d'échantillonnage utilisé lors de la mise à l'échelle des images faisant partie du texte affiché sur filtering. Pour obtenir des images mises à l'échelle de manière fluide, utilisez ici QSGTexture::Linear.
La valeur par défaut est ` QSGTexture::Nearest`.
Voir également filtering().
[pure virtual] void QSGTextNode::setLinkColor(QColor linkColor)
Définit la couleur des liens hypertextes 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é sur « renderType ».
La valeur par défaut est ` QtRendering`.
Voir également renderType().
[pure virtual] void QSGTextNode::setRenderTypeQuality(int renderTypeQuality)
Si l'renderType() utilisée le prend en charge, définissez la qualité à utiliser lors du rendu du texte. Lorsque cette fonctionnalité est prise en charge, elle permet de privilégier la vitesse d'exécution ou l'économie de mémoire au détriment de la fidélité visuelle.
Lorsque la valeur de l'renderTypeQuality est inférieure à 0, la qualité par défaut est utilisée.
renderTypeQuality peut être n'importe quel nombre entier, bien que des limitations imposées par le matériel graphique sous-jacent puissent se présenter si des valeurs extrêmes sont définies. L'élément Text de Qt Quick 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 prise en compte que par le type de rendu « QtRendering ». Sa configuration 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 très volumineux.
La valeur par défaut est -1.
Voir aussi renderTypeQuality().
[pure virtual] void QSGTextNode::setSelectionColor(QColor color)
Définit la couleur d'arrière-plan de la sélection sur color dès qu'une partie du texte est sélectionnée.
La valeur par défaut est le bleu foncé : QColor(0, 0, 128).
Voir également selectionColor().
[pure virtual] void QSGTextNode::setSelectionTextColor(QColor selectionTextColor)
Définit la couleur du texte sélectionné sur selectionTextColor dès qu'une partie quelconque du texte est marquée comme sélectionnée.
La valeur 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 vers styleColor.
La valeur par défaut est le noir : QColor(0, 0, 0).
Voir également styleColor() et setTextStyle().
[pure virtual] void QSGTextNode::setTextStyle(QSGTextNode::TextStyle textStyle)
Définit le style du texte affiché sur « textStyle ». La valeur par défaut est « Normal ».
Voir également textStyle() et setStyleColor().
[pure virtual] void QSGTextNode::setViewport(const QRectF &viewport)
Définit le rectangle englobant de la fenêtre d'affichage dans laquelle le texte est affiché à l'adresse viewport. La fourniture de cette information permet à l'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 un objet ` QRectF` construit par défaut. Pour cette fenêtre d’affichage, tout le contenu sera inclus dans le graphe.
Voir également viewport().
[pure virtual] QColor QSGTextNode::styleColor() const
Renvoie la couleur de style utilisée lors du rendu du texte.
Voir également setStyleColor() et textStyle().
[pure virtual] QSGTextNode::TextStyle QSGTextNode::textStyle()
Renvoie le style du texte affiché.
Voir également setTextStyle() et styleColor().
[pure virtual] QRectF QSGTextNode::viewport() const
Renvoie la fenêtre d'affichage actuellement définie pour cet objet ` 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.