Clase wxDatePickerCtrl
Este control permite al usuario seleccionar una fecha.
Jerarquía:

A diferencia de wxCalendarCtrl, que es un control relativamente grande, wxDatePickerCtrl se implementa como una pequeña ventana que muestra la fecha actualmente seleccionada. El control puede editarse mediante el teclado, y también puede mostrar una ventana emergente para facilitar la selección de la fecha, dependiendo de los estilos utilizados y de la plataforma.
Sólo está disponible si wxUSE_DATEPICKCTRL tiene el valor 1.
Estilos
Esta clase admite los siguientes estilos:
- wxDP_SPIN
- Crea un control sin calendario de mes desplegable pero con flechas tipo control giratorio para cambiar los componentes individuales de la fecha. Este estilo no está soportado por la versión genérica.
- wxDP_DROPDOWN
- Crea un control con una parte desplegable del calendario del mes desde la que el usuario puede seleccionar una fecha. En la versión nativa OSX/Cocoa este estilo está soportado en macOS 10.15.4 y posteriores.
- wxDP_DEFAULT
- Crea un control con el estilo mejor soportado para la plataforma actual (actualmente wxDP_SPIN bajo Windows y OSX/Cocoa y wxDP_DROPDOWN en el resto).
- wxDP_ALLOWNONE
- Con este estilo, el control permite al usuario no introducir ninguna fecha válida. Sin él -por defecto- el control siempre tiene alguna fecha válida. Este estilo no está soportado en la versión nativa OSX/Cocoa.
- wxDP_SHOWCENTURY
- Fuerza la visualización del siglo en el formato de fecha por defecto. Sin este estilo el siglo podría mostrarse, o no, dependiendo de la representación de fecha por defecto en el sistema. Este estilo no está soportado actualmente en la versión nativa de OSX/Cocoa.
Como puede verse en los comentarios anteriores, la mayoría de los estilos de control sólo están soportados en la implementación nativa de MSW. En código portable se recomienda utilizar únicamente el estilo wxDP_DEFAULT, posiblemente combinado con wxDP_SHOWCENTURY (este es también el estilo utilizado por defecto si no se especifica ninguno).
Eventos emitidos por esta clase
Las siguientes macros manejadoras de eventos redirigen los eventos a manejadores de funciones miembro 'func' con prototipos como:
void handlerFuncName(wxDateEvent& event)
Macros para eventos emitidos por esta clase:
- EVT_DATE_CHANGED(id, func)
- Procesa un evento wxEVT_DATE_CHANGED, que se dispara cuando el usuario cambia la selección actual en el control.
Funciones miembro
wxDatePickerCtrl()
wxDatePickerCtrl::wxDatePickerCtrl()
Constructor por defecto.
wxDatePickerCtrl()
wxDatePickerCtrl::wxDatePickerCtrl( wxWindow * parent, wxWindowID id, const wxDateTime & dt = wxDefaultDateTime, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = wxDP_DEFAULT|wxDP_SHOWCENTURY, const wxValidator & validator = wxDefaultValidator, const wxString & name = "datectrl" )
Inicializa el objeto y llama a Create() con todos los parámetros.
Create()
bool wxDatePickerCtrl::Create( wxWindow * parent, wxWindowID id, const wxDateTime & dt = wxDefaultDateTime, const wxPoint & pos = wxDefaultPosition, const wxSize & size = wxDefaultSize, long style = wxDP_DEFAULT|wxDP_SHOWCENTURY, const wxValidator & validator = wxDefaultValidator, const wxString & name = "datectrl" )
Crea la ventana de control.
Este método sólo debe usarse para objetos creados usando el constructor por defecto.
Parámetros
- parent
- Ventana padre, no debe ser no nula.
- id
- El identificador del control.
- dt
- El valor inicial del control, si se utiliza una fecha inválida (como el valor por defecto), el control se establece en la fecha actual.
- pos
- Posición inicial.
- size
- Tamaño inicial. Si se deja en el valor por defecto, el control elige su propio tamaño óptimo utilizando una altura aproximadamente igual a la de un control de texto y una anchura lo suficientemente grande como para mostrar la cadena de fecha por completo.
- style
- El estilo de la ventana, ver la descripción de los estilos en la documentación de la clase.
- validator
- Validador que puede utilizarse para comprobaciones adicionales de datos.
- name
- Nombre del control.
Valor de retorno
true si el control fue creado con éxito o false si la creación falló.
GetRange()
virtual bool wxDatePickerCtrl::GetRange( wxDateTime * dt1, wxDateTime * dt2 ) const
Si el control se ha limitado previamente a un rango de fechas utilizando SetRange(), devuelve los límites inferior y superior de este rango.
Si no se establece ningún rango (o sólo se establece uno de los límites), dt1 y/o dt2 se establecen como inválidos.
Obsérvese que cuando se utiliza una implementación nativa MSW de este control, el rango inferior siempre se establece, incluso si SetRange() no se ha llamado explícitamente, ya que el control nativo sólo admite fechas posteriores al año 1601.
Parámetros
- dt1
- Puntero al objeto que recibe el límite inferior del rango o se invalida si no se establece. Puede ser nullptr si el proceso que llama no está interesado en el límite inferior.
- dt2
- Igual que arriba pero para el límite superior.
Valor de retorno
false si no hay ningún límite de rango establecido, true si hay al menos un límite establecido.
GetValue()
virtual wxDateTime wxDatePickerCtrl::GetValue() const
Devuelve la fecha introducida actualmente.
Para un control con estilo wxDP_ALLOWNONE el valor devuelto puede ser inválido si no se introduce ninguna fecha, de lo contrario siempre es válido.
SetNullText()
void wxDatePickerCtrl::SetNullText(const wxString & text)
Establece el texto a mostrar cuando no hay ningún valor válido.
Para los controles con estilo wxDP_ALLOWNONE, establece la cadena que se muestra cuando el control no tiene ningún valor válido. Actualmente esto sólo se utiliza en MSW, donde se puede utilizar para anular el valor anterior que se sigue mostrando por el control en este caso, y se ignora en otros lugares.
En particular, el texto puede estar vacío para ocultar completamente la fecha si no se especifica ninguna fecha válida.
SetRange()
virtual void wxDatePickerCtrl::SetRange( const wxDateTime & dt1, const wxDateTime & dt2 )
Establece el intervalo válido para la selección de fecha.
Si dt1 es válido, se convierte en la fecha más temprana (inclusive) aceptada por el control. Si dt2 es válido, se convierte en la fecha más tardía posible.
Hay que tener en cuenta que si el valor actual no está dentro del nuevo rango, se ajustará para que esté dentro, es decir, llamar a este método puede cambiar el valor del control, sin embargo no se generan eventos por ello.
Observaciones
Si el valor actual del control está fuera de los límites del nuevo rango establecido, el comportamiento es indefinido.
SetValue()
virtual void wxDatePickerCtrl::SetValue(const wxDateTime & dt)
Cambia el valor actual del control.
La fecha debe ser válida a menos que el control haya sido creado con el estilo wxDP_ALLOWNONE e incluido en el rango actualmente seleccionado, si lo hubiera.
La llamada a este método no produce un evento de cambio de fecha.
Métodos y datos heredados
Esta clase hereda los métodos y datos miembro públicos y protegidos de wxControl, wxWindow, wxEvtHandler y wxObject.