跳到主要内容

日期选择器 DatePicker

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

它被添加到 page.overlay 中,并通过其 pick_date() 方法进行调用。

根据 date_picker_entry_mode 的值,它会显示一个日历或一个输入框(TextField)来选择日期。

示例

在线示例

基本日期选择器

import datetime
import flet as ft

def main(page: ft.Page):
def change_date(e):
print(f"日期选择器改变,当前值为 {date_picker.value}")

def date_picker_dismissed(e):
print(f"日期选择器关闭,当前值为 {date_picker.value}")

date_picker = ft.DatePicker(
on_change=change_date,
on_dismiss=date_picker_dismissed,
first_date=datetime.datetime(2023, 10, 1),
last_date=datetime.datetime(2024, 10, 1),
)

page.overlay.append(date_picker)

date_button = ft.ElevatedButton(
"选择日期",
icon=ft.icons.CALENDAR_MONTH,
on_click=lambda _: date_picker.pick_date(),
)

page.add(date_button)

ft.app(target=main)

属性

cancel_text

取消按钮上显示的文本。默认值为 "取消"。

confirm_text

确认按钮上显示的文本。默认值为 "确定"。

current_date

表示今天的日期。它将在日历中突出显示。

date_picker_mode

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

属性值是 DatePickerMode 枚举,包括以下取值:

  • DAY(默认值)
  • YEAR

DAY 模式下,显示一个月份日历。在 YEAR 模式下,显示一个可用年份的网格。

date_picker_entry_mode

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

属性值是 DatePickerEntryMode 枚举,包括以下取值:

  • CALENDAR(默认值)
  • INPUT
  • CALENDAR_ONLY
  • INPUT_ONLY

CALENDAR 模式下,显示一个日历网格,用户点击他们想要选择的日期。在 INPUT 模式下,显示一个 TextField,用户输入他们想要选择的日期。

CALENDAR_ONLYINPUT_ONLY 是上述方式的变体,不允许用户切换到该模式。

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 枚举,包括以下取值:

  • TEXT
  • MULTILINE
  • NUMBER
  • PHONE
  • DATETIME(默认值)
  • EMAIL
  • URL
  • VISIBLE_PASSWORD
  • NAME
  • STREET_ADDRESS
  • NONE

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()

打开日期选择器对话框。

事件

on_change

用户点击确认按钮时触发。value 属性会更新为选中的日期。

on_dismiss

当点击取消按钮或对话框外部时,对话框关闭时触发。