Sur cette page

PathText QML Type

Définit une chaîne de caractères dans une police spécifiée. Plus d'informations...

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 de caractères spécifiée. La ligne de base du texte sera traduite en coordonnées x et y, et les contours de la police seront ajoutés au chemin en conséquence.

Lorsqu'il est utilisé pour rendre des textes dans un élément Shape, il convient de noter ce qui suit :

  • Pour un remplissage correct, la fillRule de ShapePath doit être réglée sur ShapePath.WindingFill.
  • Toutes les polices n'offrent pas un beau contour convenant au tracé. Si vous souhaitez obtenir un contour en traits et que vous n'obtenez pas de résultats 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 sur les propriétés

font.bold : bool

Définit si la police est en gras.

font.capitalization : enumeration

Définit la capitalisation du texte.

ConstanteDescription
Font.MixedCaseaucun changement de capitalisation n'est appliqué
Font.AllUppercasemodifie le texte pour qu'il soit rendu en majuscules
Font.AllLowercasemodifie le texte pour qu'il soit rendu en minuscules
Font.SmallCapsmodifie le texte pour qu'il soit rendu en petites capitales
Font.Capitalizemodifie le texte pour qu'il soit rendu avec le premier caractère de chaque mot en majuscule
PathText { text: "Hello"; font.capitalization: Font.AllLowercase }

font.contextFontMerging : bool [since 6.8]

Si la police sélectionnée ne contient pas un certain caractère, Qt choisit automatiquement une police de remplacement similaire qui contient le caractère. Par défaut, ce choix s'effectue caractère par caractère.

Cela signifie que dans certains cas peu courants, plusieurs polices différentes peuvent être utilisées pour représenter une chaîne de texte, même s'il s'agit du même script. En fixant contextFontMerging à true, on essaiera de trouver la police de remplacement qui correspond au plus grand sous-ensemble de la chaîne d'entrée. Cela sera plus coûteux pour les chaînes où des glyphes manquent, mais peut donner des résultats plus cohérents. Par défaut, contextFontMerging est false.

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

Voir aussi QFont::StyleStrategy.

font.family : string

Définit le nom de famille de la police.

Le nom de famille est insensible à la casse et peut optionnellement inclure un nom de fonderie, par exemple "Helvetica [Cronyx]". Si la famille est disponible dans plus d'une fonderie et que la fonderie n'est pas spécifiée, une fonderie arbitraire est choisie. Si la famille n'est pas disponible, une famille sera définie en utilisant l'algorithme de correspondance des polices.

font.features : object [since 6.6]

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

Les caractéristiques des polices sont représentées par une correspondance entre des balises à quatre lettres et des valeurs entières. Cette valeur entière transmise avec la balise représente dans la plupart des cas une valeur booléenne : Une valeur nulle signifie que la fonctionnalité est désactivée, et une valeur non nulle signifie qu'elle est activée. Pour certaines fonctions de police, cependant, elle peut avoir d'autres interprétations. Par exemple, lorsqu'elle est appliquée à la fonction salt, la valeur est un index qui spécifie l'alternative stylistique à utiliser.

Par exemple, la fonction de police frac convertira les fractions diagonales séparées par une barre oblique (comme 1/2) en une représentation différente. Typiquement, cela implique de faire passer la fraction complète dans une largeur de caractère unique (comme ½).

Si une police supporte la fonctionnalité frac, elle peut être activée dans la mise en forme comme dans le code suivant :

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

Il est possible d'attribuer des valeurs à plusieurs caractéristiques 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 rassembler 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 fonctions de police en fonction d'autres propriétés de police. En particulier, la fonction kern sera activée/désactivée en fonction de la propriété font.kerning de la police QFont. En outre, toutes les fonctions de ligature (liga, clig, dlig, hlig) seront désactivées si une propriété font.letterSpacing est définie, mais uniquement pour les systèmes d'écriture dans lesquels l'utilisation de la ligature est cosmétique. Pour les systèmes d'écriture où les ligatures sont nécessaires, les caractéristiques resteront dans 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 à 1, le crénage sera toujours activé, même si la propriété font.kerning est définie à false. De même, si la propriété 0 est définie, le crénage sera toujours désactivé.

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

Voir aussi QFont::setFeature().

font.italic : bool

Définit si la police a un style italique.

font.kerning : bool

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

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

font.letterSpacing : real

Définit l'espacement des lettres pour la police.

L'espacement des lettres modifie l'espacement par défaut entre les lettres individuelles dans la police. Une valeur positive augmente l'espacement des lettres des pixels correspondants ; une valeur négative diminue l'espacement.

font.pixelSize : int

Définit la taille de la police en pixels.

L'utilisation de cette fonction rend la police dépendante de l'appareil. Utilisez pointSize pour définir la taille de la police indépendamment de l'appareil.

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

Parfois, 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 écritures brahmiques, cela est nécessaire pour que le texte soit lisible, mais dans les écritures latines, par exemple, il s'agit simplement d'une caractéristique cosmétique. En définissant la propriété preferShaping sur false, toutes ces caractéristiques seront désactivées 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.

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

font.preferTypoLineMetrics : bool [since 6.8]

les ensembles concurrents de métriques de lignes verticales qui fournissent les ascent, descent et leading de la police. Ces métriques sont souvent appelées métriques win (Windows) et métriques typo (typographiques). Bien que la spécification recommande l'utilisation de la métrique typo pour l'espacement des lignes, de nombreuses applications préfèrent la métrique win, à moins que le drapeau USE_TYPO_METRICS ne soit défini dans le champ fsSelection de la police. Pour des raisons de compatibilité ascendante, c'est également le cas pour les applications Qt. Ce n'est pas un problème pour les polices qui définissent le drapeau USE_TYPO_METRICS pour indiquer que les métriques typo sont valides, ni pour les polices dont les métriques win et typo correspondent. Cependant, pour certaines polices, la métrique win peut être plus grande que l'interligne préférable et l'indicateur USE_TYPO_METRICS peut être désactivé par erreur. Pour ces polices, le réglage de font.preferTypoLineMetrics peut donner de meilleurs résultats.

Par défaut, preferTypoLineMetrics est false.

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

Voir aussi QFont::StyleStrategy.

font.strikeout : bool

Définit si la police a un style de biffure.

font.styleName : string

Définit le nom du style de la police.

Le nom du style n'est pas sensible à la casse. S'il est défini, la police sera comparée au nom de style plutôt qu'aux propriétés de la police font.weight, font.bold et font.italic.

font.underline : bool

Définit 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 variations (avec des poids, des largeurs ou des styles différents) dans le même fichier de police. Les variations sont données sous forme de valeurs à virgule flottante pour un ensemble prédéfini de paramètres, appelés "axes variables". Des instances spécifiques sont généralement nommées par le concepteur de la police et, dans Qt Designer, elles peuvent être sélectionnées à l'aide de 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 possède une sous-famille Regular et une sous-famille Bold, vous pouvez souhaiter un poids intermédiaire entre ces deux sous-familles. Vous pouvez alors le demander 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 au poids 550.0 sera fournie.

Il existe quelques axes standard que de nombreuses polices fournissent, tels que "wght" (poids), "wdth" (largeur), "ital" (italique) et "opsz" (taille optique). Chacune d'entre elles a des plages individuelles définies dans la police elle-même. Par exemple, "wght" peut s'étendre de 100 à 900 (QFont::Thin à QFont::Black) tandis que "ital" peut s'étendre de 0 à 1 (de non italique à totalement italique).

Une police peut également choisir de définir des axes personnalisés ; la seule limitation est que le nom doit répondre aux exigences d'un QFont::Tag (séquence de quatre caractères latins-1).

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

Remarque : sous Windows, les axes variables ne sont pas pris en charge si la police GDI optionnelle est utilisée.

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

Voir aussi QFont::setVariableAxis().

font.weight : int

Définit le poids de la police.

Le poids peut être l'un des suivants

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 des mots pour la police.

L'espacement entre les mots modifie l'espacement par défaut entre les mots individuels. Une valeur positive augmente l'espacement entre les mots d'un nombre correspondant de pixels, tandis qu'une valeur négative diminue l'espacement entre les mots en conséquence.

text : string

Le texte pour lequel ce site PathText doit contenir les grandes lignes.

x : real

Position horizontale de la ligne de base du site PathText.

y : real

Position verticale de la ligne de base du site PathText.

Remarque : cette propriété fait référence à la position de la ligne de base du texte, et non au sommet de son cadre de délimitation. Cela peut prêter à confusion, par exemple lors de l'utilisation de PathText avec Qt Quick Shapes. Voir FontMetrics pour des informations sur la manière d'obtenir l'ascension d'une police, qui peut être utilisée pour traduire le texte dans la position attendue.

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