檢視原始碼 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 樣式建立,且包含在目前選取的範圍內(如果有),否則日期應該有效。

呼叫此方法不會導致日期變更事件。