檢視原始碼 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
樣式建立,且包含在目前選取的範圍內(如果有),否則日期應該有效。
呼叫此方法不會導致日期變更事件。