Sur cette page

font QML Value Type

une valeur de police présentant les propriétés décrites à l'adresse QFont. Le type « font » désigne une valeur de police présentant les propriétés décrites à l'adresse QFont. En savoir plus...

Import Statement: import QtQuick

Propriétés

Description détaillée

Les propriétés de type « font » prennent par défaut la valeur de l'font par défaut de l'application.

Exemple :

    Text {
        font.family: "Helvetica"
        font.pointSize: 13
        font.bold: true
    }

font étant un type structured value, il peut également être instancié à partir d’un objet JavaScript :

    readonly property font myFont: ({
        family: "Helvetica",
        pointSize: 13,
        bold: true
    })

Lors de l'intégration avec C++, notez que toute valeur de type ` QFont ` transmise à QML depuis C++ est automatiquement convertie en une valeur de type ` font `, et inversement.

Ce type de valeur est fourni par l’importation QtQuick.

Voir également Types de valeurs QML.

Documentation sur les propriétés

bold : bool

Si l'épaisseur de la police est en gras.

capitalization : enumeration

La mise en majuscules d'un texte.

ConstanteDescription
Font.MixedCasecas normal : aucun changement de majuscules n’est appliqué
Font.AllUppercasemodifie le texte pour qu'il s'affiche 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 }

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.

family : string

Le nom de la famille de polices.

Le nom de la famille est insensible à la casse et peut éventuellement inclure le nom d'une fonderie, 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 au hasard. Si la famille n'est pas disponible, une famille sera définie à l'aide de l'algorithme de correspondance des polices.

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 de 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 est appliquée à 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 en un seul caractère (tel que ½).

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 la propriété font.letterSpacing est définie, 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, 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().

hintingPreference : enumeration

Le niveau d'optimisation préféré pour le texte.

Il s'agit d'une indication donnée au système de rendu de texte sous-jacent afin qu'il utilise un certain niveau de hinting ; sa prise en charge varie selon les plateformes. Consultez le tableau figurant dans la documentation relative à QFont::HintingPreference pour plus de détails.

Remarque : cette propriété n'a d'effet que lorsqu'elle est utilisée conjointement avec le type de rendu « Text.NativeRendering ».

ConstanteDescription
Font.PreferDefaultHintingUtilise le niveau de hinting par défaut de la plateforme cible.
Font.PreferNoHintingSi possible, afficher le texte sans application de hinting aux contours des glyphes. La mise en page du texte sera typographiquement précise, en utilisant les mêmes métriques que celles utilisées, par exemple, lors de l’impression.
Font.PreferVerticalHintingSi possible, affichez le texte sans hinting horizontal, mais alignez les glyphes sur la grille de pixels dans le sens vertical. Le texte apparaîtra plus net sur les écrans dont la densité est trop faible pour permettre un rendu précis des glyphes. Cependant, comme les métriques horizontales des glyphes ne sont pas lissées, la mise en page du texte sera adaptable aux périphériques à plus haute densité (tels que les imprimantes) sans affecter les détails tels que les sauts de ligne.
Font.PreferFullHintingSi possible, affichez le texte avec un hinting à la fois horizontal et vertical. Le texte sera modifié pour optimiser la lisibilité sur l’appareil cible, mais comme les métriques dépendront de la taille cible du texte, les positions des glyphes, les sauts de ligne et autres détails typographiques ne s’adapteront pas à l’échelle, ce qui signifie que la mise en page d’un texte peut paraître différente sur des appareils présentant des densités de pixels différentes.
Text { text: "Hello"; renderType: Text.NativeRendering; font.hintingPreference: Font.PreferVerticalHinting }

italic : bool

Si la police dispose d'une variante en italique.

kerning : bool

Active ou désactive la fonctionnalité OpenType de crénage 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 }

letterSpacing : real

L'espacement des 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.

pixelSize : int

La taille de la police en pixels.

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.

pointSize : real

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

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 écritures brahmiques, cela est nécessaire pour que le texte soit lisible, mais dans l’écriture latine, 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 }

preferTypoLineMetrics : bool [since 6.8]

des jeux concurrents de métriques de lignes verticales qui fournissent les valeurs « ascent », « descent » et « leading » de la police. On les appelle souvent les métriques « win » (Windows) et les métriques « 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 définissent l’indicateur « USE_TYPO_METRICS » pour 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, définir « 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.

strikeout : bool

Si la police comporte un style barré.

styleName : string

Le nom du style de la police.

Le nom de style n'est pas sensible à 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.

underline : bool

Si le texte est souligné.

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 des graisses, des largeurs ou des styles différents) 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 » (épaisseur), « wdth » (largeur), « ital » (italique) et « opsz » (taille optique). Chacun d’entre eux possède des plages de valeurs définies individuellement 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 aussi QFont::setVariableAxis().

weight : int

L'épaisseur demandée pour la police. L'épaisseur demandée doit être un nombre entier compris entre 1 et 1 000, ou l'une des valeurs prédéfinies :

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

wordSpacing : real

L'espacement entre les mots pour cette police.

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

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