Flet 0.27.0 现已发布,带来了令人兴奋的新功能和改进!
- iOS 打包和签名更新 – 确保符合 App Store Connect 验证要求。
- 减少启动延迟 – 桌面应用程序的初始启动速度更快。
- 更快的增量重建 – 通过更快的迭代时间提高开发效率。
- 增强的下拉菜单控件 – 改进的功能和用户体验。
- 错误修复和稳定性改进 – 各种修复以提高整体性能和可靠性。
如何升级
运行以下命令升级 Flet:
pip install 'flet[all]' --upgrade
[all]
是一个“额外”说明符,它告诉 pip 安装或升级所有flet
包:flet
、flet-cli
、flet-desktop
和flet-web
。
在你的pyproject.toml
中将flet
包版本提升到0.27.0
(或者完全删除它以使用最新版本)。
改进的 iOS 打包
- 第三方 Flet 应用程序依赖项(也称为“站点包”,如
numpy
、pandas
、flet
等)现在捆绑在一个框架内,确保 Xcode 正确签署所有文件并通过 App Store Connect 验证。 - 新的
flet build
选项用于正确的 iOS 包签名。 - 用于打包和部署 iOS 应用程序的全面分步文档。了解更多!
提高桌面应用程序的启动性能
目前,在为 macOS、Windows 和 Linux 打包时,第三方 Flet 应用程序依赖项(例如numpy
、pandas
、flet
等),也 称为站点包,被捆绑在 app.zip 工件内。这可能会导致启动延迟,有时会很明显,因为应用程序在启动前需要将工件提取到用户的文件系统中。
在 Flet 0.27.0 中,站点包现在以未打包状态直接复制到应用程序包中,而不是压缩到 app.zip 中。这一变化显著减少了首次启动时间。
更快的增量重建
如果构建配置的某些部分保持不变,flet build
命令会尝试跳过或优化特定的构建管道步骤(例如重新安装 Flet 应用程序依赖项),减少连续构建的总体完成时间。
更快的构建意味着更快乐的开发者! 😄
Pyodide 0.27.2
Pyodide 0.27.2 基于 Python 3.12,对外函数接口(FFI)有一些重大的性能改进。
Flet 现在在所有打包平台上支持 Python 3.12。
下一站是 Python 3.13!
增强的Dropdown
控件。
从 0.27.0 版本开始,Flet 对Dropdown控件使用DropdownMenu flutter 小部件,这是之前使用的 DropdownButton 的 Material 3 版本。除了增强的外观和感觉之外,它还允许根据文本输入 过滤列表或在菜单列表中搜索一个项目。

上一个 Dropdown 实现的一些属性在新版本中不可用,并被“存根化”——它们不会破坏你的程序,但也不会做任何事情。请在此处查看已弃用属性的列表[/docs/controls/dropdown/#deprecated-dropdown-properties-and-events]。
上一个版本的 Dropdown 控件可作为DropdownM2
控件使用,并将在 Flet 0.30.0 中删除。
💥 重大变化
flet build
命令
--team
选项重命名为--ios-team-id
。--include-packages
已被删除。只需将扩展包添加到你的pyproject.toml
文件的dependencies
部分:https://flet.dev/docs/extend/built-in-extensions- 删除了
--cleanup-on-compile
,并添加了两个新选项来分别清理应用程序和第三方站点包:--cleanup-app
和--cleanup-packages
。另外两个选项:--cleanup-app-files
和--cleanup-package-files
与--cleanup-*
一起使用,并允许指定要从应用程序和站点包中排除的 glob 列表。 tool.flet.build_arch
重命名为tool.flet.target_arch
。
删 除 v0.24.0 中的弃用项
在 Flet 0.24.0 中弃用的以下项目已被删除:https://flet.dev/blog/flet-v-0-24-release-announcement#deprecations
CupertinoCheckbox.inactive_color
属性
CupertinoCheckbox
的inactive_color
属性已被删除,取而代之的是fill_color
。
其他变化
完整的更改列表可以在CHANGELOG中找到。
新功能
- feat:
ReorderableListView
控件(#4865) - feat: 实现
Container.dark_theme
属性(#4857) - 升级到 Pyodide 0.27 以支持
httpx
(#4840) - 删除
CupertinoCheckbox.inactive_color
,取而代之的是fill_color
(#4837) - feat:
flet build
:使用配置文件签署 iOS 应用程序归档(.ipa
),弃用--team
选项(#4869) - feat:
flet doctor
命令行命令(#4803) - feat: 实现按钮主题(对于
ElevatedButton
、OutlinedButton
、TextButton
、FilledButton
、IconButton
)(#4872) - feat:
ControlEvent.data
应该是Optional[str]
类型,并默认为None
(#4786) - feat:
flet build
:添加--source-packages
以允许从源发行版安装某些 Python 包(#4762)
错误修复
- 修复:禁用 stdout 日志的 rich 的 Markup(#4795)
- 修复:设置
SearchBar.bar_border_side
在视觉上未被遵守(#4767) - 修复:下拉菜单:长选项导致向下箭头溢出(#4838)
- 修复:CupertinoSlider 初始化不允许值小于零/大于 1(#4853)
- 修复:相同的代码在 Flet APP/Web/PC 本地显示不同的外观。(#4855)
- 修复:变换比例会呈现灰色屏幕(#4759)
- 修复:在 manifest.json 中使用带重音的字符时出现 UnicodeDecodeError(#4713)
- 修复:实现
SearchBar.blur()
以通过编程方式取消聚焦栏(#4827) - 修复:禁用 flet-cli stdout 日志的 markup(#4796)
结论
升级到 Flet 0.27.0,测试你的应用程序,并让我们知道你对我们添加的新功能的感受。
如果你有任何问题,请加入Flet Discord 服务器或在Flet GitHub 讨论上创建一个新线程。
快乐地使用 Flet!👾