查看源代码 wxDatePickerCtrl (wx v2.4.3)

此控件允许用户选择日期。

与相对较大的控件 wxCalendarCtrl 不同,wxDatePickerCtrl 实现为一个显示当前所选日期的小窗口。该控件可以使用键盘进行编辑,并且还可以显示一个弹出窗口,以便更方便用户地选择日期,具体取决于所使用的样式和平台。

只有当 wxUSE_DATEPICKCTRL 设置为 1 时才可用。

样式

此类支持以下样式

  • wxDP_SPIN: 创建一个没有月份日历下拉菜单的控件,但带有类似微调控件的箭头来更改各个日期组成部分。通用版本不支持此样式。

  • wxDP_DROPDOWN: 创建一个带有月份日历下拉部分的控件,用户可以从中选择日期。OSX/Cocoa 原生版本不支持此样式。

  • wxDP_DEFAULT: 创建一个最适合当前平台支持的样式的控件(当前在 Windows 和 OSX/Cocoa 下为 wxDP_SPIN,在其他地方为 wxDP_DROPDOWN)。

  • wxDP_ALLOWNONE: 使用此样式,控件允许用户不输入任何有效日期。如果不用此样式(默认),控件始终具有某些有效日期。OSX/Cocoa 原生版本不支持此样式。

  • wxDP_SHOWCENTURY: 强制在默认日期格式中显示世纪。如果不使用此样式,则世纪可能会显示,也可能不会显示,具体取决于系统中默认的日期表示形式。目前 OSX/Cocoa 原生版本不支持此样式。如上述备注所述,大多数控件样式仅在原生 MSW 实现中受支持。在可移植代码中,建议仅使用 wxDP_DEFAULT 样式,可能与 wxDP_SHOWCENTURY 结合使用(如果未指定,这也是默认使用的样式)。

参见

此类派生自以下类,并可以使用这些类中的函数:

wxWidgets 文档:wxDatePickerCtrl

事件

此类发出的事件类型

概要

函数

销毁对象

如果控件之前使用 setRange/3 限制了日期范围,则返回此范围的下限和上限。

返回当前输入的日期。

默认构造函数。

使用所有参数初始化对象并调用 Create()(在 wx 中未实现)。

设置日期选择的有效范围。

更改控件的当前值。

类型

-type wxDatePickerCtrl() :: wx:wx_object().

函数

-spec destroy(This :: wxDatePickerCtrl()) -> ok.

销毁对象

链接到此函数

getRange(This, Dt1, Dt2)

查看源代码
-spec getRange(This, Dt1, Dt2) -> boolean()
                  when This :: wxDatePickerCtrl(), Dt1 :: wx:wx_datetime(), Dt2 :: wx:wx_datetime().

如果控件之前使用 setRange/3 限制了日期范围,则返回此范围的下限和上限。

如果未设置范围(或仅设置了一个边界),则 dt1 和/或 dt2 将被设置为无效。

请注意,当使用此控件的本机 MSW 实现时,始终会设置较低的范围,即使没有显式调用 setRange/3,因为本机控件仅支持 1601 年之后的日期。

返回:如果当前未设置范围限制,则返回 false;如果至少设置了一个边界,则返回 true。

-spec getValue(This) -> wx:wx_datetime() when This :: wxDatePickerCtrl().

返回当前输入的日期。

对于具有 wxDP_ALLOWNONE 样式的控件,如果没有输入任何日期,则返回的值可能无效,否则它始终有效。

-spec new() -> wxDatePickerCtrl().

默认构造函数。

-spec new(Parent, Id) -> wxDatePickerCtrl() when Parent :: wxWindow:wxWindow(), Id :: integer().

等效于 new(Parent, Id, [])

-spec new(Parent, Id, [Option]) -> wxDatePickerCtrl()
             when
                 Parent :: wxWindow:wxWindow(),
                 Id :: integer(),
                 Option ::
                     {date, wx:wx_datetime()} |
                     {pos, {X :: integer(), Y :: integer()}} |
                     {size, {W :: integer(), H :: integer()}} |
                     {style, integer()} |
                     {validator, wx:wx_object()}.

使用所有参数初始化对象并调用 Create()(在 wx 中未实现)。

链接到此函数

setRange(This, Dt1, Dt2)

查看源代码
-spec setRange(This, Dt1, Dt2) -> ok
                  when This :: wxDatePickerCtrl(), Dt1 :: wx:wx_datetime(), Dt2 :: wx:wx_datetime().

设置日期选择的有效范围。

如果 dt1 有效,则它将成为控件接受的最早日期(包含)。如果 dt2 有效,则它将成为最晚的可能日期。

请注意,如果当前值不在新范围内,则会对其进行调整以使其位于范围内,即调用此方法可以更改控件值,但是不会由此生成任何事件。

备注:如果控件的当前值超出新设置的范围边界,则行为未定义。

-spec setValue(This, Dt) -> ok when This :: wxDatePickerCtrl(), Dt :: wx:wx_datetime().

更改控件的当前值。

除非使用 wxDP_ALLOWNONE 样式创建控件并且包含在当前选定的范围(如果有)中,否则日期应有效。

调用此方法不会导致日期更改事件。