# VDateEditBrowser

**Hereda de:** [VAbstractBrowser](vabstractbrowser).

Esta clase representa al control de edición de fecha con doble botón arriba/abajo y botón de menú.

Esta clase implementa la misma funcionalidad que la clase [VDateEdit](vdateedit) más las propiedades y funciones heredadas de la clase [VAbstractBrowser](vabstractbrowser).

## Indice de [propiedades](#documentación-de-propiedades)

Boolean [accelerated](#accelerated)

const Boolean [acceptableInput](#acceptableinput)

Number [alignment](#alignment)

Number [buttonSymbols](#buttonsymbols)

Boolean [calendarPopup](#calendarpopup)

Number [correctionMode](#correctionmode)

Number [currentSection](#currentsection)

Number [currentSectionIndex](#currentsectionindex)

Date [date](#date)

const Number [displayedSections](#displayedsections)

String [displayFormat](#displayformat)

Boolean [frame](#frame)

Boolean [keyboardTracking](#keyboardtracking)

Date  [maximumDate](#maximumdate)

Date [minimumDate](#minimumdate)

Boolean [readOnly](#readonly)

const Number [sectionCount](#sectioncount)

String [specialValueText](#specialvaluetext)

const String [text](#text)

Number [timeSpec](#timespec)

Boolean [wrapping](#wrapping)

## Indice de funciones

### **Generales**

void [clear](#clear)()

void [selectAll](#selectall)()

void [stepDown](#stepdown)()

void [stepUp](#stepup)()

### **De set**

void [setDate](#setdate)( Date date )

## Señales

Value changed

## Enumeraciones

**Button symbols**

* UpDownArrows
* PlusMinus
* NoButtons

**Correction mode**

* CorrectToPreviousValue
* CorrectToNearestValue

**Flags de alineamiento**

* AlignLeft = 0×0001
* AlignRight = 0×0002
* AlignHCenter = 0×0004
* AlignJustify = 0×0008
* AlignAbsolute = 0×0010
* AlignTop = 0×0020
* AlignBottom = 0×0040
* AlignVCenter = 0×0080
* AlignCenter = AlignVCenter | AlignHCenter

**Flags de sección**

* NoSection = 0x0000
* AmPmSection = 0x0001
* MSecSection = 0x0002
* SecondSection = 0x0004
* MinuteSection = 0x0008
* HourSection = 0x0010
* DaySection = 0x0100
* MonthSection = 0x0200
* YearSection = 0x0400

**TimeSpec**

* LocalTime = 0
* UTC = 1
* OffsetFromUTC = 2

## Documentación de propiedades

#### accelerated

Permite leer o configurar si está activada la aceleración en caso de mantener pulsados los botones arriba/abajo del microscroller.

#### acceptableInput

Devuelve true si la entrada cumple la validación actual del control.

#### alignment

Permite leer o configurar la alineación del contenido. Ver enum de Flags de alineamiento. Los valores con combinables mediante el uso del operador bitwise or booleano "|".

#### buttonSymbols

Permite leer o configurar los símbolos a utilizar en los botones arriba/abajo del microscroller, por ejemplo (+/- ó flecha arriba/flecha abajo).

#### calendarPopup

Permite leer o configurar el modo en el que se mostrará el calendario pop-up. El calendario pop-up aparecerá al hacer clic en el botón de flecha. Esta propiedad sólo es válida si hay un formato de visualización de fecha válida.

#### correctionMode

Permite leer o configurar si se aplicará corrección si existe un valor intermedio editado en el control.

#### currentSection

Permite leer o configurar la sección actual del microscroller setCurrentSection(). Ver enum de flags de sección. Los valores con combinables mediante el uso del operador bitwise or booleano "|".

#### currentSectionIndex

Permite leer o configurar el índice de la sección actual del microscroller. Si el formato es "aaaa/MM/dd ', el displayText es '2001/05/21' y la posición del cursor es de 5 currentSectionIndex devuelve 1. Si la posición del cursor es 3 currentSectionIndex es 0, etc.

#### date

Permite leer o configurar la fecha del widget. De forma predeterminada, esta propiedad contiene una fecha que se refiere al 1 de enero de 2000.

#### displayedSections

Permite leer los campos mostrados actualmente de la edición Fecha y Hora. Devuelve un conjunto de bits de las secciones que se muestran. Ver enum de flags de sección. Los valores con combinables mediante el uso del operador bitwise or booleano "|".

#### displayFormat

Permite leer o configurar el formato utilizado para mostrar la fecha y la hora. Este formato es el mismo que el utilizado se describe en DateTime.toString() y DateTime.FromString()

Ejemplo de formato de cadenas (asumiendo que la fecha es 02 de julio 1969):

Formato de resultados

dd.mm.aaaa - 02.07.1969

MMM d aa - 02 de julio 69

MMMM d yy - 02 de julio 69

Tenga en cuenta que si especifica un año de dos dígitos, se interpreta que en el siglo en el que la edición de fecha y hora se ha inicializado. El valor predeterminado es el siglo 21 (2000-2099). Si se especifica un formato no válido el formato no se establecerá.

#### frame

Permite leer o configurar si el control será pintado con o sin frame.

#### keyboardTracking

Permite leer o configurar si el seguimiento de teclado está habilitado para el control. Si el seguimiento de teclado está activado (por defecto), el cuadro de número valueChanged emite la señal (), mientras que el nuevo valor se introduce desde el teclado. Por ejemplo cuando el usuario introduce el valor 600, escribiendo 6, 0, y 0, el cuadro de número 3 emite señales con los valores de 6, 60, y 600, respectivamente. Si el seguimiento de teclado está desactivado, el cuadro de número no emite la señal valueChanged () mientras se escribe. Emite la señal después, cuando la tecla es presionada, cuando el foco del teclado se pierde, o cuando la funcionalidad spinbox otro se utiliza por ejemplo, presionando una tecla de flecha.

#### maximumDate

Permite leer o configurar la fecha máxima editable. Al establecer esta propiedad la minimumDate se ajusta si es necesario para asegurar que el rango sigue siendo válido. Si la fecha no es válida esta función no hace nada. De forma predeterminada, esta propiedad contiene una fecha que hace referencia al 31 de diciembre de 7999.

#### minimumDate

Permite leer o configurar la fecha mínima editable. Al establecer esta propiedad la maximumDate se ajusta si es necesario, para asegurar que el rango sigue siendo válido. Si la fecha no es válida esta función no hace nada. De forma predeterminada, esta propiedad contiene una fecha que se refiere al 14 de septiembre de 1752. La fecha mínima debe ser de al menos el primer día en el año 100.

#### readOnly

Permite leer o configurar si el control es de sólo lectura.

#### sectionCount

Devuelve el número de secciones que se muestran. Si el formato es "aaaa/aa/aaaa ', sectionCount devuelve 3.

#### specialValueText

Permite leer o configurar si contiene el texto especial valor. Si se establece, el cuadro de selección mostrará este texto en lugar de un valor numérico siempre que el valor actual es igual al mínimo (). El uso típico es para indicar que esta elección tiene una especial (por defecto) que significa.

Por ejemplo, si su cuadro de selección permite al usuario elegir un factor de escala (o nivel de zoom) para la visualización de una imagen, y su aplicación es capaz de seleccionar automáticamente uno que permitirá a la imagen para que quepa completamente dentro de la ventana de visualización, puede configurar hasta la vuelta cuadro como este:

QSpinBox \* zoomSpinBox = new QSpinBox;

zoomSpinBox >> SetRange (0, 1000);

zoomSpinBox >> setSingleStep (10);

zoomSpinBox >> setSuffix ("%");

zoomSpinBox >> setSpecialValueText (tr ("Automático"));

zoomSpinBox >> setValue (100);

Después, el usuario podrá elegir una escala de 1% a 1000% o seleccione "Auto" para dejar a la solicitud de elegir. Su código se debe interpretar el valor de cuadro de número 0 como una petición por parte del usuario para escalar la imagen para que quepa en la ventana. Todos los valores se muestran con el prefijo y sufijo (si se define), excepto para el valor especial, que sólo muestra el texto de un valor especial. Este texto especial se pasa en la señal QSpinBox :: valueChanged () que pasa a un QString. Para desactivar la visualización de texto especial valor y llamar a esta función con una cadena vacía. El valor predeterminado es ningún texto especial valor, es decir, el valor numérico se muestra la forma habitual. Si no hay texto especial valor está establecido, specialValueText () devuelve una cadena vacía.

#### text

Devuelve el texto del control, incluyendo el prefijo y el sufijo.

#### timeSpec

Devuelva la especificación de tiempo empleada. Ver enum TimeSpec.

#### wrapping

Permite leer o configurar si el valor del control se comportará de modo circular. Esto sólo tiene sentido si se han especificado el valor mínimo y máximo para que el aumento de valor por encima del máximo lleve al valor mínimo y el decremento de valor por debajo del mínimo lleve al máximo.

## Documentación de funciones

### Funciones generales

#### void clear() <a href="#clear" id="clear"></a>

Limpia el contenido del control.

#### void selectAll() <a href="#selectall" id="selectall"></a>

Selecciona todo el contenido del control.

#### void stepDown() <a href="#stepdown" id="stepdown"></a>

Equivale a pulsar el botón flecha abajo, lo que supone cambiar el valor del control por el del día siguiente.

#### void stepUp() <a href="#stepup" id="stepup"></a>

Equivale a pulsar el botón flecha arriba, lo que supone cambiar el valor del control por el del día anterior.

### Funciones de set

#### void setDate( Date date ) <a href="#setdate" id="setdate"></a>

Asigna la fecha al control.

Parámetros:

* date: dato de tipo fecha a asignar.

## Ejemplo

### En un control de edición de fecha en modo fecha (no alfabético) no permitir seleccionar una fecha fuera del mes/año actuales

```
//Este script es válido solamente para controles de edición de fecha en modo fecha

//Obtenemos el formulario
var formuulario = theRoot.dataView();

//Obtenemos el edit de fecha
var control = formuulario.control("FCH");

//Obtenemos la fecha actual
hoy = new Date();

//Obtenemos el año de la fecha actual
anyoActual = hoy.getFullYear();

//Obtenemos el mes de la fecha actual
mesActual = hoy.getMonth(); 

//Obtenemos los días dle mes actual
diasMes = new Date(añoActual, mesActual, 0).getDate();

//Establecemos las fechas mínima y máxima al control
var fechaMin = new Date(anyoActual,mesActual,1);
control.minimumDate=fechaMin;
var fechaMax = new Date(anyoActual,mesActual,diasMes);
control.maximumDate=fechaMax;
```
