- Qt 6.9
- Qt Quick
- QML Types
- font
- Qt 6.9.3 Reference Documentation

# font QML Value Type

a font value with the properties of QFont. The `font` type refers to a font value with the properties of QFont. More...

## Detailed Description

Properties of type `font` default to the application's default font.

The most commonly used properties are:

- string `font.family`
- bool `font.bold`
- bool `font.italic`
- bool `font.underline`
- real `font.pointSize`
- int `font.pixelSize`

If both `pointSize` and a `pixelSize` are specified, `pixelSize` will be used.

The following properties are also available:

- enumeration `font.weight`
- bool `font.overline`
- bool `font.strikeout`
- enumeration `font.capitalization`
- real `font.letterSpacing`
- real `font.wordSpacing`
- bool `font.kerning`
- bool `font.preferShaping`
- enumeration `font.hintingPreference`
- `object` font.features
- string `font.styleName`
- `object` font.variableAxes
- bool `font.contextFontMerging`
- bool `font.preferTypoLineMetrics`

Example:

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

As `font` is a structured value type, it can also be constructed with a JavaScript object:

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

When integrating with C++, note that any QFont value passed into QML from C++ is automatically converted into a `font` value, and vice-versa.

This value type is provided by the QtQuick import.

Numerical values for font weights follow the CSS specification, where a weight of 100 is extremely light, and 900 is extremely bold. The following values are supported:

Constant | Description
--- | ---
`Font.Thin` | 100
`Font.ExtraLight` | 200
`Font.Light` | 300
`Font.Normal` | 400
`Font.Medium` | 500
`Font.DemiBold` | 600
`Font.Bold` | 700
`Font.ExtraBold` | 800
`Font.Black` | 900

Capitalization supports the following values:

Constant | Description
--- | ---
`Font.MixedCase` | No capitalization change is applied.
`Font.AllUppercase` | Alters the text to be rendered in all uppercase type.
`Font.AllLowercase` | Alters the text to be rendered in all lowercase type.
`Font.SmallCaps` | Alters the text to be rendered in small-caps type.
`Font.Capitalize` | Alters the text to be rendered with the first character of each word as an uppercase character.

Setting the hinting preference only has an effect when using the "NativeRendering" render type. The property supports the following values:

Constant | Description
--- | ---
`Font.PreferDefaultHinting` | Use the default hinting level for the target platform.
`Font.PreferNoHinting` | If possible, render text without hinting the outlines of the glyphs.
`Font.PreferVerticalHinting` | If possible, render text with no horizontal hinting, but align glyphs to the pixel grid in the vertical direction.
`Font.PreferFullHinting` | If possible, render text with hinting in both horizontal and vertical directions.

See also QML Value Types.