网站首页 > 博客文章 正文
ft.Page(页面)是控件的容器View。当新用户会话启动时,会自动创建页面实例和根视图。
每个应用的主函数,必须用到它,它是一切控件的顶级、根、总容器。比如:
import flet as ft
def main(page: ft.Page):
....
ft.app(target=main)
一、ft.Page 的属性解读
auto_scroll
值为True,表示当子项更新时,滚动条是否应自动将其位置移动到末尾。值为False,方法scroll_to()才能发挥作用。
appbar
AppBar是显示在页面顶部的控件。AppBar这个要单独讲解到。
bgcolor
页面的背景颜色。颜色值可以是#ARGB格式(例如#FFCC0000)、#RGB格式(例如#CC0000)的十六进制值或模块中的命名颜色flet.colors。
bottom_appbar
BottomAppBar控件显示在页面底部。如果同时提供bottom_appbar和属性,将显示 。navigation_barNavigationBar
browser_context_menu
用于启用或禁用用户右键单击网页时出现的上下文菜单。值的类型为BrowserContextMenu。 仅限网络。
浏览器上下文菜单 Page.browser_context_menu。类具有以下属性:
disabled 上下文菜单是否被禁用。默认为False.
方法 disable():禁用上下文菜单。
enable():启用上下文菜单。
client_ip
连接用户的IP地址。 仅限网络。
client_user_agent
连接用户的浏览器详细信息。 仅限网络。
controls
要在页面上显示的控件列表。
例如,要将新控件添加到页面:
page.controls.append(ft.Text("Hello!"))
page.update()
要删除页面上最顶部的控件:
page.controls.pop()
page.update()
dark_theme
在深色主题模式下自定义应用程序的主题。值是该类的一个实例-主题Theme()指南中的更多信息。
debug
TrueFlet 应用程序的 Flutter 客户端是否在调试模式下运行。
decoration
背景装饰。值的类型为BoxDecoration。
design
保留以供将来使用。
drawer
NavigationDrawer显示为从页面起始边缘滑动的面板的控件。
end_drawer
NavigationDrawer显示为从页面末端边缘滑动的面板的控件。
floating_action_button
FloatingActionButton显示在页面内容顶部的控件。
floating_action_button_location
定义 的位置FloatingActionButton。值是枚举类型FloatingActionButtonLocation。默认为FloatingActionButtonLocation.END_FLOAT.
fonts
定义要在应用程序中使用的自定义字体。
Value 是一个字典,其中的键代表用于引用的字体系列名称,值代表
- Key:用于参考的字体系列名称。
- Value:字体源,可以是绝对 URL 或本地资源的相对路径。支持以下字体文件格式.ttc,.ttf以及.otf.
使用示例在这里。
height
包含 Flet 应用程序的本机操作系统窗口的网页或内容区域的高度。该属性是只读的。它通常在page.on_resize处理程序内部使用。
horizontal_alignment
子控件应如何水平放置。属性值是CrossAxisAlignment枚举。默认为START.
locale_configuration
应用程序的区域设置配置。值的类型为LocaleConfiguration。
media
提供有关应用程序媒体(屏幕、窗口)的详细信息。有关更多信息,请参阅Flutter 文档中的MediaQueryData。
值的类型为PageMediaData。
在大多数情况下,将内容纳入SafeArea控制范围内应该没问题。
name
调用中指定的页面名称ft.app()。当 Flet 应用程序作为 Web 应用程序运行时,设置页面名称。这是主机名之后 URL 的一部分。
navigation_bar
NavigationBar控件显示在页面底部。如果同时提供bottom_appbar和属性,将显示 。navigation_barNavigationBar
on_scroll_interval
以毫秒为单位对on_scroll事件进行限制。默认为10.
overlay
Control在主页内容顶部显示为堆栈的列表。
padding
页面内容与其边缘之间的空间。默认值为每边 10 像素。设置零填充:
page.padding = 0
page.update()
值的类型为Padding。
platform
应用程序运行的操作系统。值的类型为PagePlatform。
此属性可用于根据操作系统创建具有不同控件的自适应 UI:
def main(page: ft.Page):
if page.platform == ft.PagePlatform.MACOS:
page.add(ft.CupertinoDialogAction("Cupertino Button"))
else:
page.add(ft.TextButton("Material Button"))
您还可以设置此属性用于测试目的:
import flet as ft
def main(page):
def set_android(e):
page.platform = ft.PagePlatform.ANDROID
page.update()
print("New platform:", page.platform)
def set_ios(e):
page.platform = "ios"
page.update()
print("New platform:", page.platform)
page.add(
ft.Switch(label="Switch A", adaptive=True),
ft.ElevatedButton("Set Android", on_click=set_android),
ft.ElevatedButton("Set iOS", on_click=set_ios),
)
print("Default platform:", page.platform)
ft.app(main)
platform_brightness
主机平台当前的亮度模式。
值是只读的并且类型为Brightness。
pubsub
一个简单的 PubSub 实现,用于在应用程序会话之间传递消息。
subscribe(handler)
订阅当前应用程序会话的广播(无主题)消息。handler是具有单个参数的函数或方法message,例如:
def main(page: ft.Page):
def on_broadcast_message(message):
print(message)
page.pubsub.subscribe(on_broadcast_message)
subscribe_topic(topic, handler)
将当前应用程序会话订阅到特定主题。handler是具有两个参数的函数或方法:topic和message,例如:
def main(page: ft.Page):
def on_message(topic, message):
print(topic, message)
page.pubsub.subscribe_topic("general", on_message)
send_all(message)
向所有订阅者广播消息。message可以是任何东西:简单的文字或类实例,例如:
@dataclass
class Message:
user: str
text: str
def main(page: ft.Page):
def on_broadcast_message(message):
page.add(ft.Text(f"{message.user}: {message.text}"))
page.pubsub.subscribe(on_broadcast_message)
def on_send_click(e):
page.pubsub.send_all(Message("John", "Hello, all!"))
page.add(ft.ElevatedButton(text="Send message", on_click=on_send_click))
send_all_on_topic(topic, message)
向所有订阅者发送有关特定主题的消息。
send_others(message)
向除发送者之外的所有订阅者广播消息。
send_others_on_topic(topic, message)
向除发件人之外的特定主题的所有订阅者发送消息。
unsubscribe()
取消订阅当前应用程序会话的广播消息,例如:
@dataclass
class Message:
user: str
text: str
def main(page: ft.Page):
def on_leave_click(e):
page.pubsub.unsubscribe()
page.add(ft.ElevatedButton(text="Leave chat", on_click=on_leave_click))
unsubscribe_topic(topic)
取消订阅特定主题的当前应用程序会话。
unsubscribe_all()
取消订阅当前应用程序会话的广播消息和所有主题,例如:
def main(page: ft.Page):
def client_exited(e):
page.pubsub.unsubscribe_all()
page.on_close = client_exited
pwa
True如果应用程序作为渐进式 Web 应用程序 (PWA) 运行。值是只读的。
query
后的应用程序 URL 的一部分?。该值是QueryString用于获取查询参数的辅助方法的实例。
route
获取或设置页面的导航路线。有关更多信息和示例,请参阅导航和路由部分。
rtl
True将文本方向设置为从右到左。
默认为False.
scroll
启用页面垂直滚动以防止其内容溢出。
值的类型为ScrollMode。
session
用于会话数据的简单键值存储。
session_id
用户会话的唯一 ID。该属性是只读的。
spacing
页面上控件之间的垂直间距。默认值为 10 个虚拟像素。仅当alignment设置为start、end或时才应用间距center。
show_semantics_debugger
True打开一个覆盖层,显示框架报告的可访问性信息。
theme
在浅色主题模式下自定义应用程序的主题。目前,主题只能从“种子”颜色自动生成。例如,从绿色生成浅色主题。
值是该类的一个实例-主题Theme()指南中的更多信息。
theme_mode
页面的主题模式。
值是类型ThemeMode,默认为ThemeMode.SYSTEM.
title
浏览器或本机操作系统窗口的标题
url
完整的 Web 应用程序的 URL。
vertical_alignment
子控件应如何垂直放置。值是类型MainAxisAlignment,默认为MainAxisAlignment.START.
views
View用于构建导航历史记录的控件列表。列表中的最后一个视图是页面上显示的视图。第一个视图是无法弹出的“根”视图。
web
True如果应用程序正在 Web 浏览器中运行。
width
包含 Flet 应用程序的本机操作系统窗口的网页或内容区域的宽度。该属性是只读的。它通常在page.on_resize处理程序内部使用。
window
具有属性/方法/事件的类,用于控制应用程序的本机操作系统窗口。值的类型为Window。
二、ft.Page 事件
on_app_lifecycle_state_change
当应用程序生命周期状态更改时触发。
您可以使用此事件了解应用程序何时变为活动状态(置于最前面),以使用最新信息更新 UI。此活动适用于 iOS、Android、所有桌面平台和 Web。
事件处理程序参数的类型为AppLifecycleStateChangeEvent。
on_close
当会话在配置的时间(默认为 60 分钟)后过期时触发。
on_connect
当 Web 用户(重新)连接到页面会话时触发。首次打开应用页面时不会触发,但刷新页面或计算机解锁后重新连接 Flet Web 客户端时会触发。此事件可用于检测网络用户何时“在线”。
on_disconnect
当网络用户从页面会话断开连接时触发,即关闭浏览器选项卡/窗口。
on_error
当发生未处理的异常时触发。
on_keyboard_event
当按下键盘按键时触发。事件处理程序参数的类型为KeyboardEvent。
on_login
在 OAuth 授权流程成功或失败时触发。有关更多信息和示例,请参阅身份验证指南。
on_logout
调用后触发page.logout()。
on_media_change
发生变化时触发page.media。事件处理程序参数的类型为PageMediaData。
on_platform_brigthness_change
当应用程序主机平台的亮度发生变化时触发。
on_resized
当用户调整包含 Flet 应用程序的浏览器或本机操作系统窗口的大小时触发,例如:
def page_resized(e):
print("New page size:", page.window.width, page.window_height)
page.on_resized = page_resized
事件处理程序参数的类型为WindowResizeEvent。
on_route_change
当页面路由通过编辑应用程序 URL 或使用浏览器后退/前进按钮以编程方式更改时触发。
事件处理程序参数的类型为RouteChangeEvent。
on_scroll
当用户更改页面的滚动位置时触发。事件处理程序参数的类型为OnScrollEvent。
on_view_pop
当用户单击AppBar控件中的自动“后退”按钮时触发。事件处理程序参数的类型为ViewPopEvent。
魔术方法: __contains__(control)
检查页面上是否存在控件,例如:
import flet as ft
def main(page: ft.Page):
hello = ft.Text("Hello, World!")
page.add(hello)
print(hello in page) # True
ft.app(main)
(汇报完毕,感谢收看!)
猜你喜欢
- 2025-01-26 Qt——常用控件(qtcreator控件)
- 2025-01-26 33个非常实用的JavaScript一行代码,建议收藏
- 2025-01-26 XtraReport控件VS微软RDLC报表,谁更胜一筹?
- 2025-01-26 Google官方梳理,Android 多返回栈技术详解
- 2025-01-26 Python入坑系列-pyside6桌面开发之QmainWindow自定义标题栏
- 2025-01-26 「3D建模」3Dmax快捷键大全(3dmax建模常用快捷键)
- 2025-01-26 第3天 | 28天学会PyQt5,基本窗口
- 2025-01-26 有办法了!批量删除多个Word页眉页脚
- 2025-01-26 鸿蒙开发:实现popup弹窗(鸿蒙系统没弹幕)
- 2025-01-26 Android绘制流程(android界面绘制)
你 发表评论:
欢迎- 最近发表
-
- 解决Win10打开软件提示“服务器没有及时响应或控制请求”
- 用友UAP解开非结构化大数据处理与分析的密码
- Windows 25H2 修复底层崩溃(windows修复环境)
- 开源技巧:使用Docker实现交互式任务
- Win11 任意版本 直接安装 Android 应用 教程完整版
- Windows Terminal已成为Windows 11操作系统的默认终端
- 那些好莱坞电影中炫酷的特效 原来是这么拍的
- Windows 10 Build 21327.1010发布:测试服务管道更新
- Made in China: The story behind the label
- PowerShell登录远程Linux系统(powershell开启远程桌面)
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- flutterrun (59)
- 系统设计图 (58)
- powershellfor (73)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)