Skip to content

自定义字体指南 (Fonts) ​


系统字体 (System fonts) ​

你可以直接使用安装在计算机上的(系统)字体,例如 "Consolas"、"Arial"、"Verdana"、"Tahoma" 等。

局限性

在以 CanvasKit 为渲染器的 Flet Web 应用中,无法直接使用系统字体。

使用示例 ​

以下示例演示了如何在 Flet 应用程序中使用 "Consolas" 字体:

python
import flet as ft

def main(page: ft.Page):
    page.add(
        ft.Text(
            value="This text is rendered with Consolas font",
            font_family="Consolas"
        )
    )

ft.run(main)

导入字体 (Importing Fonts) ​

字体可以通过提供绝对 URL 从外部资源导入,也可以从应用程序的 assets 静态资源目录中加载(参见 Assets 指南)。

这可以通过设置页面的 page.fonts 属性来实现。

要应用已导入的字体,你可以:

  • 使用 Theme.font_family 设置整个应用程序的默认/备用字体系列。
  • 为单个控件单独指定字体。例如:Text.font_family。
使用示例 ​

下面的示例从 GitHub 加载了 "Kanit" 字体,从本地资源中加载了 "Open Sans" 字体。其中 "Kanit" 被设置为应用的默认字体,而 "Open Sans" 则被应用到特定的 Text 控件上。

python
import flet as ft

def main(page: ft.Page):
    page.fonts = {
        "Kanit": "https://raw.githubusercontent.com/google/fonts/master/ofl/kanit/Kanit-Bold.ttf",
        "Open Sans": "/fonts/OpenSans-Regular.ttf"
    }

    page.theme = ft.Theme(font_family="Kanit")  # 默认应用字体

    page.add(
        ft.Text("This text uses the Kanit font"),
        ft.Text("This text uses the Open Sans font", font_family="Open Sans")
    )

ft.run(main, assets_dir="assets")

静态与可变字体 (Static and Variable Fonts) ​

目前,Flet 仅支持静态字体。这些静态字体具有特定的宽度、字重或样式组合(例如 "Open Sans Regular")。

对可变字体(Variable Fonts)的支持正在开发中。

然而,如果你现在想要使用可变字体,你可以使用 fonttools 从中生成特定字重的静态字体实例,例如:

sh
fonttools varLib.mutator ./YourVariableFont-VF.ttf wght=140 wdth=85

要探索可用的字体特性(例如 wght 字重的可选范围值),你可以使用在线工具 Wakamai Fondue。


关注我,学习大模型、大数据、Python等热门技术。