跳到主要内容

DatePicker

一个 Material 风格的日期选择对话框。

根据 date_picker_entry_mode 的不同,它将显示日历或输入框(TextField)来选择日期。

要打开此控件,只需调用page.open()辅助方法。

示例

在线示例

基本日期选择器

import datetime
import flet as ft


def main(page: ft.Page):
page.horizontal_alignment = ft.CrossAxisAlignment.CENTER

def handle_change(e):
page.add(ft.Text(f"Date changed: {e.control.value.strftime('%Y-%m-%d')}"))

def handle_dismissal(e):
page.add(ft.Text(f"DatePicker dismissed"))

page.add(
ft.ElevatedButton(
"Pick date",
icon=ft.icons.CALENDAR_MONTH,
on_click=lambda e: page.open(
ft.DatePicker(
first_date=datetime.datetime(year=2023, month=10, day=1),
last_date=datetime.datetime(year=2024, month=10, day=1),
on_change=handle_change,
on_dismiss=handle_dismissal,
)
),
)
)


ft.app(target=main)

属性

cancel_text

显示在取消按钮上的文本。默认值为“取消”。

confirm_text

显示在确认按钮上的文本。默认值为“确定”。

current_date

代表今天的日期。它将在日期网格中高亮显示。

date_picker_mode

日历日期选择器的初始显示模式。

值的类型为 DatePickerMode ,默认值为 DatePickerMode.DAY

date_picker_entry_mode

日期选择对话框的初始日期输入模式。

值的类型为 DatePickerEntryMode 且默认为 DatePickerEntryMode.CALENDAR

error_format_text

如果输入的日期格式不正确,TextField 下方显示的错误消息。默认值为“格式无效”。

error_invalid_text

如果日期早于 first_date 或晚于 last_date,TextField 下方显示的错误消息。默认值为“超出范围”。

field_hint_text

在 TextField 中显示的提示文本。

默认值取决于您的语言环境的日期格式字符串。例如,en_US 的默认值为“mm/dd/yyyy”。

field_label_text

在 TextField 中显示的标签文本。默认值为“输入日期”。

first_date

用户可以选择的最早日期。默认值为1900年1月1日。

help_text

在标题顶部显示的文本。

用于向用户指示他们正在选择的日期。默认值为“选择日期”。

keyboard_type

用于编辑文本的键盘类型。属性值为 KeyboardType

默认为 DATETIME

last_date

用户可以选择的最晚日期。默认值为2050年1月1日。

switch_to_calendar_icon

DatePickerEntryModeDatePickerEntryMode.INPUT 时,显示在对话框角落的图标名称。点击图标会将 DatePickerEntryMode 更改为 DatePickerEntryMode.CALENDAR。如果为 null,则使用 ft.icons.CALENDAR_TODAY

switch_to_input_icon

DatePickerEntryModeDatePickerEntryMode.CALENDAR 时,显示在对话框角落的图标名称。点击图标会将 DatePickerEntryMode 更改为 DatePickerEntryMode.INPUT。如果为 null,则使用 ft.icons.EDIT_OUTLINED

value

选择器应显示的已选日期。默认值等于 current_date

方法

pick_date()

打开一个日期选择器对话框。

在 v0.23.0 中已弃用,并将在 v0.26.0 中删除。请使用 page.open(date_picker) 替代。

事件

on_change

当用户点击确认按钮时触发。value 属性会更新为选定的日期。e.data 也包含选定的日期。

on_dismiss

当通过点击取消按钮或在日期选择对话框外部关闭对话框时触发。

on_entry_mode_change

date_picker_entry_mode 更改时触发。

事件处理程序参数的类型为 DatePickerEntryModeChangeEvent