查看源代码 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.
销毁对象
-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 中未实现)。
-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
样式创建控件并且包含在当前选定的范围(如果有)中,否则日期应有效。
调用此方法不会导致日期更改事件。