Python调用Flet库使用Flutter框架

以下为授权转载的一盎司科技公众号文章


Flutter是谷歌开源的跨平台开发框架,可以为常见平台Windows/Linux/macOS/Android/iOS等开发应用程序,而Flet库则是对Flutter的包装,可以使用Python轻松构建Flutter应用,详细介绍可参考官网(https://flet.dev/docs/)。

示例代码地址:

GitHub地址:https://github.com/iounce/python-cpp-demo

Gitee地址:https://gitee.com/iounce_admin/python-cpp-demo

环境

  • Windows操作系统:Windows10(21H2,19044.1766)

  • C++开发环境:Visual Studio 2022社区版

  • Python:3.10.4

  • Flet: 0.10.3

安装Flet

在Python中使用,直接使用如下命令安装即可:

pip install flet

简单示例

编写简单的示例展示基本操作步骤,首先创建包含flet.Page入参的函数,在page中创建各类控件,然后绑定控件响应函数,这样点击控件就会有效果展示。具体如下:

图片

这里在页面增加了行flet.Row控件,然后并排添加了flet.IconButton控件和flet.TextField控件,展示数值的增减操作,控件名称和操作方式类型Flutter中的处理。

直接运行此Python文件,结果如下:

图片

多页签示例

多页签可以使用flet.Tabs控件,切换不同页签展示不同的页面。基本操作步骤也是类似的,在Page页面增加控件,然后在不同的Tab页签添加不同的控件,最后添加控件对应响应函数即可。具体如下:

图片

每个flet.Tab控件的标题可以自定义,通过不同的控件组合展示不同效果:

图片

总的来说,Python下面使用Flet库的流程和风格,与直接使用Flutter还是比较类似的,也隐藏了部分细节,更加简洁。更多控件的使用可参考官网,对于熟悉Python的用户来说,编写跨平台应用又多了一种选择。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flutter Pivot 是一个 Flutter ,如果你想在 Python使用它,你需要通过 Dart 的 FFI(Foreign Function Interface)机制来调用它。FFI 可以让你在 Python使用 Dart 代码中定义的函数和变量。 首先,你需要在 Flutter Pivot 中声明一些 Dart 函数,并使用 `dart:ffi` 中的 `native` 注释来标记它们。例如: ```dart import 'dart:ffi'; class _PivotApi { static final DynamicLibrary pivotLib = Platform.isAndroid ? DynamicLibrary.open('libflutter_pivot.so') : DynamicLibrary.process(); @pragma('vm:entry-point') static final Pointer<Utf8> Function() getPivotVersion = pivotLib.lookup<NativeFunction<Pointer<Utf8> Function()>>( 'get_pivot_version').asFunction(); } ``` 这里我们声明了一个名为 `getPivotVersion` 的函数,并使用 `@pragma('vm:entry-point')` 标记它是一个入口点函数。然后,我们使用 `DynamicLibrary` 类加载 Flutter Pivot ,并使用 `lookup` 方法获取 `get_pivot_version` 函数的指针,并将其转换为一个类型为 `Pointer<Utf8> Function()` 的原生函数。 在 Python 中,你可以使用 `ctypes` 来加载 Flutter Pivot ,并调用 `getPivotVersion` 函数。例如: ```python import ctypes # Load the Flutter Pivot library pivot_lib = ctypes.CDLL('libflutter_pivot.so') # Define the return type of the function pivot_lib.get_pivot_version.restype = ctypes.c_char_p # Call the function version = pivot_lib.get_pivot_version().decode('utf-8') print('Flutter Pivot version:', version) ``` 这里我们使用 `CDLL` 函数加载 Flutter Pivot ,并使用 `restype` 属性指定 `get_pivot_version` 函数的返回类型为一个 `c_char_p` 类型的指针。然后,我们调用 `get_pivot_version` 函数并将其返回值解码为一个字符串,并打印出 Flutter Pivot 的版本号。 需要注意的是,使用 FFI 调用 Dart 函数需要了解一些 Dart 的语法和底层实现细节,因此可能需要一些额外的学习和实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值