You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flet框架中使用自定义图标?

在Flet纯桌面应用中加载本地自定义图标

完全可行,以下是具体实现步骤:

1. 准备本地图标资源

将你的自定义图标(支持PNG、SVG、ICO等格式)放在项目根目录的assets/icons文件夹下,确保路径结构清晰,比如:

你的项目/
├─ main.py
└─ assets/
   └─ icons/
      ├─ home_icon.png
      └─ settings_icon.svg

2. 配置Flet应用的资源目录

在启动Flet应用时,通过assets_dir参数指定本地资源目录的路径,让框架能识别你的自定义资源:

import flet as ft

def main(page: ft.Page):
    # 后续页面逻辑写在这里
    pass

if __name__ == "__main__":
    # 指定assets目录为项目根下的assets文件夹
    ft.app(target=main, assets_dir="assets")

3. 在组件中使用自定义图标

直接显示图标

用ft.Image组件加载并显示本地图标,通过src参数指定相对路径(注意路径开头的/):

# 加载PNG图标
home_icon = ft.Image(src="/icons/home_icon.png", width=24, height=24)
# 加载SVG图标
settings_icon = ft.Image(src="/icons/settings_icon.svg", width=24, height=24)

# 将图标添加到页面
page.add(home_icon, settings_icon)

作为组件的图标使用

如果要把自定义图标用作按钮、导航栏等组件的图标,直接将ft.Image实例传入组件的icon参数即可:

# 带自定义图标的按钮
custom_button = ft.IconButton(
    icon=ft.Image(src="/icons/button_icon.png", width=24, height=24),
    on_click=lambda e: print("自定义图标按钮被点击")
)
page.add(custom_button)

4. 打包应用时的注意事项

用flet pack命令打包桌面应用时,需要显式指定资源目录,确保自定义图标被包含到打包后的应用中:

flet pack main.py --assets-dir assets

内容的提问来源于stack exchange,提问作者Fernando

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:10:48