跳到主要内容

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 枚举。

默认为 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()

打开日期选择对话框。

事件

on_change

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

on_dismiss

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

on_entry_mode_change

date_picker_entry_mode 更改时触发。事件处理程序 (e) 的类型为 DatePickerEntryModeChangeEvent,新条目模式可以从 e.entry_mode(类型为 DatePickerEntryMode 枚举的值)中获取。