# VComboBox

**Hereda de:** [Widget](widget).

Esta clase representa al control comboBox.

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

Number [count](#count)

Number [currentIndex](#currentindex)

const String [currentText](#currenttext)

Boolean [duplicatesEnabled](#duplicatesenabled)

Boolean [editable](#editable)

Boolean [frame](#frame)

Number [maxCount](#maxcount)

Number [maxVisibleItems](#maxvisibleitems)

Number [minimumContentsLength](#minimumcontentslength)

Number [sizeAdjustPolicy](#sizeadjustpolicy)

## Indice de funciones

### **Generales**

void [clear](#clear)()

void [clearEditText](#clearedittext)()

void [hidePopup](#hidepopup)()

void [setCurrentIndex](#setcurrentindex)( Number index )

void [setEditText](#setedittext)( String text )

void [showPopup](#showpopup)()

### **De ítems**

void [addItem](#additem)( String text, \[Number data] )

void [addItem](#void-additem-string-text-string-data-)( String text, String data )

void [addItem](#void-additem-vimage-icon-string-text-number-data-)(  VImage icon, String text, \[Number data] )

void [addItem](#void-additem-vimage-icon-string-text-string-data-)(  VImage icon, String text, String data )

Number [findData](#finddata)( Number data, \[Number matchFlags] )

Number [findData](#number-finddata-string-data-number-matchflags-)( String data, \[Number matchFlags] )

Number [findText](#findtext)( String text, \[Number matchFlags] )

void [insertItem](#insertitem)( Number index, String text, \[Number data] )

void [insertItem](#void-insertitem-number-index-string-text-string-data-)( Number index, String text, String data )

void [insertItem](#void-insertitem-number-index-vimage-icon-string-text-number-data-)( Number index, VImage icon, String text, \[Number data] )

void [insertItem](#void-insertitem-number-index-vimage-icon-string-text-string-data-)( Number index,  VImage icon, String text, String data )

Variant [itemD](#itemdata)[ata](#itemdata)( Number index )

String [itemText](#itemtext)( Number index )

void [removeItem](#removeitem)( Number index )

void [setItemData](#setitemdata)( Number index, Number data )

void [setItemData](#void-setitemdata-number-index-string-data-)( Number index, String data )

void [setItemImage](#setitemimage)( Number index,  image )

void [setItemText](#setitemtext)( Number index, String text )

## Señales

Item: activado

Item: cambio de seleccionado

## Enumeraciones

**Insert policy**

* NoInsert
* InsertAtTop
* InsertAtCurrent
* InsertAtBottom
* InsertAfterCurrent
* InsertBeforeCurrent
* InsertAlphabetically

**Match flags**

* MatchExactly
* MatchFixedString
* MatchContains
* MatchStartsWith
* MatchEndsWith
* MatchCaseSensitive
* MatchRegExp
* MatchWildcard
* MatchWrap
* MatchRecursive
* MatchRegularExpression

**SizeAdjustPolicy**

* AdjustToContents
* AdjustToContentsOnFirstShow
* AdjustToMinimumContentsLength
* AdjustToMinimumContentsLengthWithIcon

## Documentación de propiedades

#### count

Devuelve el número de elementos del control.

#### currentIndex

Devuelve el índice o posición del elemento en curso de la lista y también permite fijar cual es el elemento en curso de la lista.

#### currentText

Devuelve el texto del elemento en curso.

#### duplicatesEnabled

Permite leer o configurar si el control permite elementos duplicados.

#### editable

Permite leer o configurar si el control admite edición por parte del usuario. De forma predeterminada, esta propiedad es false.

#### frame

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

#### maxCount

Permite leer o establecer el número máximo de elementos que admitirá el control.

#### maxVisibleItems

Permite leer o establecer el número de elementos que se visualizarán en pantalla. Por defecto el valor es 10.

#### minimumContentsLength

Permite leer o establecer el número mínimo de caracteres que se mostrarán en el control. Por defecto el valor es 0.

#### sizeAdjustPolicy

Permite leer o establecer la política de ajuste del tamaño del control en función del contenido. El valor por defecto es ajustar el tamaño la primera vez que se muestra.

Los valores posibles son:

0 - AdjustToContents.

1 - AdjustToContentsOnFirstShow.

2 - AdjustToMinimumContentsLength.

3 - AdjustToMinimumContentsLengthWithIcon.

## Documentación de funciones

### Funciones generales

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

Limpia el combobox eliminando todos sus ítems.

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

Limpia el texto de edición del combobox.

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

Oculta la lista de ítems.

#### void setCurrentIndex( Number index ) <a href="#setcurrentindex" id="setcurrentindex"></a>

Asigna como ítem en curso el correspondiente al índice.

Parámetros:

* index: número que se corresponde con la posición del elemento a fijar como activo.

#### void setEditText( String text ) <a href="#setedittext" id="setedittext"></a>

Asigna el texto de edición del combobox.

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

Muestra la lista de ítems.

### Funciones de ítems

#### void addItem( String text, \[Number data] ) <a href="#additem" id="additem"></a>

Añade un ítem nuevo al final de la lista del combobox.

Parámetros:

* text: texto del elemento.
* data: valor opcional. Número correspondiente al valor del elemento.

#### void addItem( String text, String data )

Añade un ítem nuevo al final de la lista del combobox.

Parámetros:

* text: texto del elemento.
* data: valor del elemento.

#### void addItem( VImage icon, String text, \[Number data] )

Añade un ítem nuevo al final de la lista del combobox.

Parámetros:

* icon: objeto de la clase [VImage](vimage) correspondiente al icono.
* text: texto del elemento.
* data: valor opcional. Número correspondiente al valor del elemento.

#### void addItem( VImage icon, String text, String data )

Añade un ítem nuevo al final de la lista del combobox.

Parámetros:

* icon: objeto de la clase [VImage](vimage) correspondiente al icono.
* text: texto del elemento.
* data: valor del elemento.

#### Number findData( Number data, \[Number matchFlags] ) <a href="#finddata" id="finddata"></a>

Busca un ítem y devuelve el número correspondiente al índice del elemento encontrado.

Parámetros:

* data: número correspondiente al dato del elemento a buscar.
* matchFlags: ver enum Match flags.

#### Number findData( String data, \[Number matchFlags] )

Busca un ítem y devuelve el número correspondiente al índice del elemento encontrado.

Parámetros:

* data: cadena de texto que correspondiente al dato del elemento a buscar.
* matchFlags: ver enum Match flags.

#### Number findText( String text, \[Number matchFlags] ) <a href="#findtext" id="findtext"></a>

Devuelve el número de elemento que contiene un determinado texto.

Parámetros:

* text: texto a buscar.
* matchFlags: ver enum MatchFlag en la clase QComboBox de Qt.

#### void insertItem( Number index, String text, \[Number data] ) <a href="#insertitem" id="insertitem"></a>

Inserta un ítem en la posición del índice especificada. Si el valor del índice es mayor que el número de elemento el nuevo ítem se sitúa al final, si el índice es 0 o negativo el nuevo ítem se antepone a la lista de elementos existentes.

Parámetros:

* index: índice donde deseamos situar el nuevo elemento. Si es zero o negativo se pondrá el primero.
* text: texto del elemento.
* data: valor opcional. Número correspondiente al valor del elemento.

#### void insertItem( Number index, String text, String data )

Inserta un ítem en la posición del índice especificada. Si el valor del índice es mayor que el número de elemento el nuevo ítem se sitúa al final, si el índice es 0 o negativo el nuevo ítem se antepone a la lista de elementos existentes.

Parámetros:

* index: índice donde deseamos situar el nuevo elemento. Si es zero o negativo se pondrá el primero.
* text: texto del elemento.
* data: texto correspondiente al valor del elemento.

#### void insertItem( Number index, VImage icon, String text, \[Number data] )

Inserta un ítem en la posición del índice especificada. Si el valor del índice es mayor que el número de elemento el nuevo ítem se sitúa al final, si el índice es 0 o negativo el nuevo ítem se antepone a la lista de elementos existentes.

Parámetros:

* index: índice donde deseamos situar el nuevo elemento. Si es zero o negativo se pondrá el primero.
* icon: objeto de la clase [VImage](vimage) correspondiente al icono.
* text: texto del elemento.
* data: valor opcional. Número correspondiente al valor del elemento.

#### void insertItem( Number index, VImage icon, String text, String data )

Inserta un ítem en la posición del índice especificada. Si el valor del índice es mayor que el número de elemento el nuevo ítem se sitúa al final, si el índice es 0 o negativo el nuevo ítem se antepone a la lista de elementos existentes.

Parámetros:

* index: índice donde deseamos situar el nuevo elemento. Si es zero o negativo se pondrá el primero.
* icon: objeto de la clase [VImage](vimage) correspondiente al icono.
* text: texto del elemento.
* data: valor opcional. Número correspondiente al valor del elemento.

#### Variant itemData( Number index ) <a href="#itemdata" id="itemdata"></a>

Devuelve el dato del elemento correspondiente al índice especificado.

Parámetros:

* index: número del elemento del combobox del que se desea obtener el valor.

#### String itemText( Number index ) <a href="#itemtext" id="itemtext"></a>

Devuelve el texto de un número de elemento determinado.

Parámetros:

* index: número del elemento del combobox del que se desea obtener el valor.

#### void removeItem( Number index ) <a href="#removeitem" id="removeitem"></a>

Elimina un elemento del combobox.

Parámetros:

* index: número del elemento del combobox que se desea eliminar.

#### void setItemData( Number index, Number data ) <a href="#setitemdata" id="setitemdata"></a>

Asigna un dato al elemento del combobox correspondiente al índice especificado.

Parámetros:

* index: número del elemento del combobox que se desea modificar.
* data: número a grabar como valor del dato del elemento.

#### void setItemData( Number index, String data )

Asigna un dato al elemento del combobox correspondiente al índice especificado.

Parámetros:

* index: número del elemento del combobox que se desea modificar.
* data: texto a grabar como valor del dato del elemento.

#### void setItemImage( Number index, VImage image ) <a href="#setitemimage" id="setitemimage"></a>

Asigna una imagen al elemento del combobox correspondiente al índice especificado.

Parámetros:

* index: número del elemento del combobox que se desea modificar.
* image: objeto de la clase [VImage](vimage) que deseamos asignar al elemento.

#### void setItemText( Number index, String text ) <a href="#setitemtext" id="setitemtext"></a>

Asigna un texto al elemento del combobox correspondiente al índice especificado.

Parámetros:

* index: número del elemento del combobox que se desea modificar.
* text: texto a grabar en el elemento.

## Ejemplos

### 1- Establecer dinámicamente los ítems de un combo box en un formulario

En un [formulario](../../../../proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario) tenemos un control de tipo [combo box](../../../../proyectos-objetos-y-editores/proyecto-de-aplicacion/formulario/controles-de-entrada/combobox) sin ítems y los establecemos dinámicamente desde un [manejador de evento](../../../../proyectos-objetos-y-editores/proyecto-de-aplicacion/sub-objetos-de-vistas-de-datos/manejador-de-evento):

```javascript
//Obtenemos el formulario en curso
var form = theRoot.dataView();

// Accedemos al control combo box. Se resuelve con el identificador del control
var combo = form.control("COMBO_VACIO");

//Añadimos los ítems al combo
combo.addItem("Entrada", 1);
combo.addItem("Salida", 2);
combo.addItem("Regularización", 3);
```

### 2- Leer el ítem seleccionado en un combo box y asignarlo a una variable local del formulario

```javascript
// Capturamos el formulario
var form = theRoot.dataView();

// Accedemos al control combo box. Se resuelve con el identificador del control
var combo = form.control("COM_BOX");

//Obtenemos la posición del ítem seleccionado en el combo
var sel = combo.currentIndex;

//Extraemos el valor del ítem seleccionado (en este caso, el ID del registro)
var codsel = combo.itemData(sel);

//Asignamos el dato leído a la variable local del formulario ITEM_SEL
theRoot.setVar("ITEM_SEL", codsel);
```

