FontLoader QML Type

Allows fonts to be loaded by URL. More...

Import Statement: import QtQuick 2.2

Properties

Detailed Description

The FontLoader type is used to load fonts by URL.

The status indicates when the font has been loaded, which is useful for fonts loaded from remote sources.

For example:

 import QtQuick 2.0

 Column {
     FontLoader { id: webFont; source: "http://www.mysite.com/myfont.ttf" }

     Text { text: "Fancy font"; font: webFont.font }
 }

See also Qt Quick Examples - Text Fonts.

Property Documentation

[since 6.0] font : font

This property holds a default query for the loaded font.

You can use this to select the font if other properties than just the family name are needed to disambiguate. You can either specify the font using individual properties:

 Item {
     width: 200; height: 50

     FontLoader {
         id: webFont
         source: "http://www.mysite.com/myfont.ttf"
     }
     Text {
         text: "Fancy font"
         font.family: webFont.font.family
         font.weight: webFont.font.weight
         font.style: webFont.font.style
         font.pixelSize: 24
     }
 }

Or you can set the full font query directly:

 Item {
     width: 200; height: 50

     FontLoader {
         id: webFont
         source: "http://www.mysite.com/myfont.ttf"
     }
     Text {
         text: "Fancy font"
         font: webFont.font
     }
 }

In this case, the default font query will be used with no modifications (so font size, for instance, will be the system default).

This property was introduced in Qt 6.0.


[read-only] name : string

This property holds the name of the font family. It is set automatically when a font is loaded using the source property.

This is equivalent to the family property of the FontLoader's font property.

Use this to set the font.family property of a Text item.

Example:

 Item {
     width: 200; height: 50

     FontLoader {
         id: webFont
         source: "http://www.mysite.com/myfont.ttf"
     }
     Text {
         text: "Fancy font"
         font.family: webFont.name
     }
 }

source : url

The URL of the font to load.


status : enumeration

This property holds the status of font loading. It can be one of:

  • FontLoader.Null - no font has been set
  • FontLoader.Ready - the font has been loaded
  • FontLoader.Loading - the font is currently being loaded
  • FontLoader.Error - an error occurred while loading the font

Use this status to provide an update or respond to the status change in some way. For example, you could:

  • Trigger a state change:
     State { name: 'loaded'; when: loader.status == FontLoader.Ready }
    
  • Implement an onStatusChanged signal handler:
     FontLoader {
         id: loader
         onStatusChanged: if (loader.status == FontLoader.Ready) console.log('Loaded')
     }
    
  • Bind to the status value:
     Text { text: loader.status == FontLoader.Ready ? 'Loaded' : 'Not loaded' }