Sur cette page

PathText QML Type

Définit une chaîne de caractères dans une police spécifiée. En savoir plus…

Import Statement: import QtQuick
Since: QtQuick 2.15

Propriétés

Description détaillée

Cet élément définit la forme d'une chaîne de caractères spécifiée dans une police spécifiée. La ligne de base du texte sera convertie en coordonnées x et y, et les contours de la police seront ajoutés au tracé en conséquence.

Lorsqu’il est utilisé pour afficher du texte dans un élément Shape, veuillez noter les points suivants :

  • Pour obtenir un remplissage correct, la propriété fillRule de l'ShapePath doit être définie sur ShapePath.WindingFill.
  • Toutes les polices ne fournissent pas un contour de bonne qualité adapté au traçage. Si vous souhaitez obtenir un contour tracé et que les résultats ne sont pas satisfaisants, essayez une autre police.
PathText {
    x: 0
    y: font.pixelSize
    font.family: "Arial"
    font.pixelSize: 100
    text: "Foobar"
}

Voir également Path, QPainterPath::setFillRule, PathPolyline, PathQuad, PathCubic, PathArc, PathAngleArc, PathCurve, PathSvg et PathMove.

Documentation relative aux propriétés

font.bold : bool

Détermine si l'épaisseur de la police est en gras.

font.capitalization : enumeration

Définit la casse du texte.

ConstanteDescription
Font.MixedCasecas par défaut : aucune modification de la capitalisation n'est appliquée
Font.AllUppercasemodifie le texte pour qu’il soit affiché entièrement en majuscules
Font.AllLowercasemodifie le texte pour qu'il s'affiche entièrement en minuscules
Font.SmallCapsmodifie le texte pour qu'il s'affiche en petites capitales
Font.Capitalizemodifie le texte pour qu'il s'affiche avec la première lettre de chaque mot en majuscule
Text { text: "Hello"; font.capitalization: Font.AllLowercase }

font.contextFontMerging : bool [since 6.8]

Si la police sélectionnée ne contient pas un caractère donné, Qt choisit automatiquement une police de secours d'aspect similaire qui contient ce caractère. Par défaut, cette opération s'effectue caractère par caractère.

Cela signifie que, dans certains cas peu courants, de nombreuses polices différentes peuvent être utilisées pour représenter une même chaîne de texte, même si celle-ci appartient au même alphabet. En définissant ` contextFontMerging ` sur `true`, le système tentera plutôt de trouver la police de secours qui correspond au plus grand sous-ensemble de la chaîne d’entrée. Cette opération sera plus gourmande en ressources pour les chaînes comportant des glyphes manquants, mais pourra donner des résultats plus cohérents. Par défaut, la valeur de ` contextFontMerging ` est ` false`.

Cette propriété a été introduite dans Qt 6.8.

Voir également QFont::StyleStrategy.

font.family : string

Définit le nom de la famille de polices.

Le nom de la famille est insensible à la casse et peut éventuellement inclure le nom d'un éditeur, par exemple « Helvetica [Cronyx] ». Si la famille est disponible auprès de plusieurs fonderies et qu'aucune n'est spécifiée, une fonderie est choisie de manière aléatoire. Si la famille n'est pas disponible, une famille sera définie à l'aide de l'algorithme de correspondance des polices.

font.features : object [since 6.6]

Applique des valeurs entières à des fonctionnalités OpenType spécifiques lors de la mise en forme du texte en fonction de son contenu. Cela offre un accès avancé au processus de mise en forme des polices et peut être utilisé pour prendre en charge des fonctionnalités de police qui ne sont pas couvertes par l’API.

Les fonctionnalités de police sont représentées par une correspondance entre des balises à quatre lettres et des valeurs entières. Dans la plupart des cas, cette valeur entière transmise avec la balise correspond à une valeur booléenne : une valeur nulle signifie que la fonctionnalité est désactivée, tandis qu’une valeur non nulle indique qu’elle est activée. Pour certaines fonctionnalités de police, cependant, elle peut avoir d’autres interprétations. Par exemple, lorsqu’elle s’applique à la fonctionnalité « salt », la valeur est un index qui spécifie l’alternative stylistique à utiliser.

Par exemple, la fonctionnalité de police « frac » convertit les fractions diagonales séparées par une barre oblique (telles que 1/2) en une représentation différente. Généralement, cela implique de regrouper la fraction complète dans la largeur d’un seul caractère (comme ½).

Si une police prend en charge la fonctionnalité « frac », celle-ci peut être activée dans le shaper comme dans le code suivant :

Text {
    text: "One divided by two is 1/2"
    font.family: "MyFractionFont"
    font.features: { "frac": 1 }
}

Plusieurs fonctionnalités peuvent se voir attribuer des valeurs dans le même mappage. Par exemple, si vous souhaitez également désactiver le crénage pour la police, vous pouvez le désactiver explicitement comme suit :

Text {
    text: "One divided by two is 1/2"
    font.family: "MyFractionFont"
    font.features: { "frac": 1, "kern": 0 }
}

Vous pouvez également regrouper les propriétés de la police dans un objet :

Text {
    text: "One divided by two is 1/2"
    font: {
        family: "MyFractionFont"
        features: { "frac": 1, "kern": 0 }
    }
}

Remarque : par défaut, Qt active et désactive certaines fonctionnalités de police en fonction d’autres propriétés de police. En particulier, la fonctionnalité « kern » sera activée ou désactivée en fonction de la propriété « font::kerning ». De plus, toutes les fonctionnalités de ligature (liga, clig,

dlig, hlig) seront désactivées si une valeur est définie pour font.letterSpacing, mais uniquement pour les systèmes d’écriture où l’utilisation des ligatures est purement esthétique. Pour les systèmes d’écriture où les ligatures sont obligatoires, ces fonctionnalités conserveront leur état par défaut. Les valeurs définies à l’aide de ` font.features ` remplaceront le comportement par défaut. Si, par exemple, ` "kern" ` est défini sur 1, alors le crénage sera toujours activé, que la propriété ` font::kerning ` soit définie sur `false` ou non. De même,

si elle est définie sur 0, il sera toujours désactivé.

Cette propriété a été introduite dans Qt 6.6.

Voir également QFont::setFeature().

font.italic : bool

Détermine si la police dispose d'un style italique.

font.kerning : bool

Active ou désactive la fonctionnalité OpenType « kerning » lors de la mise en forme du texte. La désactivation de cette fonctionnalité peut améliorer les performances lors de la création ou de la modification du texte, au détriment de certaines fonctionnalités esthétiques. La valeur par défaut est « true ».

Text { text: "OATS FLAVOUR WAY"; font.kerning: false }

font.letterSpacing : real

Définit l'espacement entre les lettres de la police.

L'espacement des lettres modifie l'espacement par défaut entre les lettres de la police. Une valeur positive augmente l'espacement des lettres du nombre de pixels correspondant ; une valeur négative le réduit.

font.pixelSize : int

Définit la taille de la police en pixels.

L'utilisation de cette fonction rend la police dépendante du périphérique. Utilisez ` pointSize ` pour définir la taille de la police de manière indépendante du périphérique.

font.pointSize : real

Définit la taille de la police en points. La taille en points doit être supérieure à zéro.

font.preferShaping : bool

Il arrive parfois qu'une police applique des règles complexes à un ensemble de caractères afin de les afficher correctement. Dans certains systèmes d’écriture, tels que les scripts brahmiques, cela est nécessaire pour que le texte soit lisible, mais dans le script latin, par exemple, il s’agit simplement d’une fonctionnalité esthétique. Définir la propriété preferShaping sur « false » désactivera toutes ces fonctionnalités lorsqu’elles ne sont pas nécessaires, ce qui améliorera les performances dans la plupart des cas.

La valeur par défaut est « true ».

Text { text: "Some text"; font.preferShaping: false }

font.preferTypoLineMetrics : bool [since 6.8]

des jeux concurrents de mesures de lignes verticales qui fournissent l'ascent, l'descent et l'leading de la police. On les appelle souvent les mesures « win » (Windows) et les mesures « typo » (typographiques). Bien que la spécification recommande d’utiliser les métriques « typo » pour l’espacement des lignes, de nombreuses applications préfèrent les métriques « win », sauf si l’indicateur « USE_TYPO_METRICS » est activé dans le champ « fsSelection » de la police. Pour des raisons de compatibilité ascendante, c’est également le cas pour les applications Qt. Cela ne pose pas de problème pour les polices qui activent l’indicateur « USE_TYPO_METRICS » afin d’indiquer que les mesures « typo » sont valides, ni pour celles où les mesures « win » et « typo » correspondent. Cependant, pour certaines polices, les mesures « win » peuvent être supérieures à l’espacement de ligne souhaité et l’indicateur « USE_TYPO_METRICS » peut être désactivé par erreur. Pour ces polices, l’activation de « font.preferTypoLineMetrics » peut donner de meilleurs résultats.

Par défaut, la valeur de ` preferTypoLineMetrics ` est ` false`.

Cette propriété a été introduite dans Qt 6.8.

Voir également QFont::StyleStrategy.

font.strikeout : bool

Détermine si la police dispose d'un style barré.

font.styleName : string

Définit le nom du style de la police.

Le nom de style est insensible à la casse. S'il est défini, la police sera sélectionnée en fonction du nom de style plutôt qu'en fonction des propriétés de police suivantes : font.weight, font.bold et font.italic.

font.underline : bool

Détermine si le texte est souligné.

font.variableAxes : object [since 6.7]

Applique des valeurs à virgule flottante aux axes variables dans les polices variables.

Les polices variables permettent de stocker plusieurs variantes (avec différentes épaisseurs, largeurs ou styles) dans un même fichier de police. Les variantes sont définies sous forme de valeurs à virgule flottante pour un ensemble prédéfini de paramètres, appelés « axes variables ». Les instances spécifiques reçoivent généralement un nom attribué par le créateur de la police et, dans Qt, elles peuvent être sélectionnées à l'aide de la fonction setStyleName(), tout comme les sous-familles traditionnelles.

Dans certains cas, il est également utile de fournir des valeurs arbitraires pour les différents axes. Par exemple, si une police comporte une sous-famille Regular et une sous-famille Bold, vous pouvez souhaiter obtenir une épaisseur intermédiaire entre les deux. Vous pouvez alors en faire la demande manuellement en fournissant une valeur personnalisée pour l’axe « wght » de la police.

Text {
    text: "Foobar"
    font.family: "MyVariableFont"
    font.variableAxes: { "wght": (Font.Normal + Font.Bold) / 2.0 }
}

Si l’axe « wght » est pris en charge par la police et que la valeur fournie se situe dans la plage définie, une police correspondant à l’épaisseur 550,0 sera fournie.

Il existe quelques axes standard proposés par de nombreuses polices, tels que « wght » (gras), « wdth » (largeur), « ital » (italique) et « opsz » (taille optique). Chacun d’entre eux dispose d’une plage de valeurs définie dans la police elle-même. Par exemple, « wght » peut aller de 100 à 900 (QFont::Thin à QFont::Black), tandis que « ital » peut aller de 0 à 1 (de non italique à entièrement italique).

Une police peut également choisir de définir des axes personnalisés ; la seule contrainte est que le nom doit respecter les exigences d’un QFont::Tag (séquence de quatre caractères Latin-1).

Par défaut, aucun axe variable n’est défini.

Remarque : sous Windows, les axes variables ne sont pas pris en charge si le backend de police GDI optionnel est utilisé.

Cette propriété a été introduite dans Qt 6.7.

Voir également QFont::setVariableAxis().

font.weight : int

Définit l'épaisseur de la police.

L'épaisseur peut être l'une des suivantes :

ConstanteDescription
Font.Thin100
Font.ExtraLight200
Font.Light300
Font.Normal400 (par défaut)
Font.Medium500
Font.DemiBold600
Font.Bold700
Font.ExtraBold800
Font.Black900
PathText { text: "Hello"; font.weight: Font.DemiBold }

font.wordSpacing : real

Définit l'espacement entre les mots pour la police.

L'espacement entre les mots modifie l'espacement par défaut entre chaque mot. Une valeur positive augmente l'espacement entre les mots d'un nombre de pixels correspondant, tandis qu'une valeur négative le réduit d'autant.

text : string

Le texte pour lequel cette PathText doit contenir les grandes lignes.

x : real

La position horizontale de la ligne de base de l'PathText.

y : real

La position verticale de la ligne de base de l'PathText.

Remarque : cette propriété fait référence à la position de la ligne de base du texte, et non au haut de son cadre de sélection. Cela peut prêter à confusion, par exemple lorsque l’on utilise l’ PathText avec des formes d’ Qt Quick. Consultez FontMetrics pour savoir comment obtenir la hauteur d’ascension d’une police, qui peut être utilisée pour décaler le texte vers la position souhaitée.

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