跳到主要内容

AlertDialog

一个材料设计的警告对话框。

警告对话框通知用户需要确认的情况。警告对话框有一个可选的标题和一个可选的操作列表。标题显示在内容上方,操作显示在内容下方。

示例

在线示例

基本和模态对话框

import flet as ft

def main(page: ft.Page):
page.title = "AlertDialog 示例"

dlg = ft.AlertDialog(
title=ft.Text("你好!"), on_dismiss=lambda e: print("对话框已关闭!")
)

def close_dlg(e):
dlg_modal.open = False
page.update()

dlg_modal = ft.AlertDialog(
modal=True,
title=ft.Text("请确认"),
content=ft.Text("你真的想删除所有这些文件吗?"),
actions=[
ft.TextButton("是", on_click=close_dlg),
ft.TextButton("否", on_click=close_dlg),
],
actions_alignment=ft.MainAxisAlignment.END,
on_dismiss=lambda e: print("模态对话框已关闭!"),
)

def open_dlg(e):
page.dialog = dlg
dlg.open = True
page.update()

def open_dlg_modal(e):
page.dialog = dlg_modal
dlg_modal.open = True
page.update()

page.add(
ft.ElevatedButton("打开对话框", on_click=open_dlg),
ft.ElevatedButton("打开模态对话框", on_click=open_dlg_modal),
)

ft.app(target=main)

属性

actions

在对话框底部显示的(可选)操作集。

通常这是一个 TextButton 控件列表。

action_button_padding

围绕在 actions 中每个按钮的填充。

actions_alignment

定义操作的水平布局。

属性值是 MainAxisAlignment 枚举。默认值是 END

actions_padding

围绕在对话框底部操作集的填充。

通常用于提供按钮栏与对话框边缘之间的填充。

如果没有操作,则不包括任何填充。按钮栏周围的填充默认为零。

值是 padding.Padding 类的实例或一个数字。

adaptive

如果值为 True,则根据目标平台是 iOS/macOS 创建自适应 AlertDialog。

在 iOS 和 macOS 上,创建 CupertinoAlertDialog,它具有与 AlertDialog 匹配的功能和表现,并且具有 iOS 上预期的图形。在其他平台上,创建材料设计 AlertDialog。

默认值为 False。用法示例见 此处

bgcolor

对话框表面的背景颜色

clip_behavior

控制对话框内容如何剪裁(或不剪裁)到给定的 shape。 属性值是 ClipBehavior 枚举。

默认为 NONE

content

对话框的(可选)内容显示在对话框的中心,字体较轻。通常这是一个包含对话框Text消息的Column

content_padding

内容周围的填充。

如果没有内容,则不会提供填充。否则,内容上方会提供 20 像素的填充以将内容与标题分开,左右和底部会提供 24 像素的填充以将内容与对话框的其他边缘分开。

值是 padding.Padding 类的实例或一个数字。

elevation

定义对话框出现的高度(z 坐标)。

icon

一个显示在对话框顶部的控件。通常是一个 Icon 控件。

icon_padding

icon 周围的填充。

inset_padding

对话框本身周围的填充。

值是 padding.Padding 类的实例或一个数字。

此属性的默认值是对话框框外水平 40 像素和垂直 24 像素的填充。(padding.symmetric(vertical=40, horizontal=24))

是否可以通过点击对话框外部区域来关闭对话框。

open

设置为 True 以显示对话框。

semantics_label

对话框的语义标签,由辅助功能框架用于在对话框打开和关闭时宣布屏幕过渡。

在 iOS 中,如果未提供此标签,将从 title 推断出一个语义标签(如果它不为空)。

shadow_color

用于在对话框下绘制阴影的颜色,反映对话框的高度。

shape

值是 OutlinedBorder 类的实例。

默认形状是一个半径为 4.0RoundedRectangleBorder

surface_tint_color

用于在对话框背景色上作为表面色调覆盖的颜色,反映对话框的高度。

title

对话框的(可选)标题,以大字体显示在对话框顶部。

通常是一个 Text 控件。

title_padding

标题周围的填充。

如果没有标题,则不会提供填充。否则,将使用此填充。

值是 padding.Padding 类的实例或一个数字。

此属性默认在标题的顶部、左侧和右侧提供 24 像素的填充。如果内容不为空,则不会提供底部填充(但见 content_padding)。如果未设置,则会添加额外的 20 像素底部填充以将标题与操作分开。

事件

on_dismiss

对话框关闭时触发。