# Interacción entre formulario QML y formulario que lo lanza

**URL:** <https://foros.velneo.com/t/interaccion-entre-formulario-qml-y-formulario-que-lo-lanza/9904>\
**Category:** Velneo\
**Created:** [9 Junio, 2018 07:09 UTC](https://foros.velneo.com/t/interaccion-entre-formulario-qml-y-formulario-que-lo-lanza/9904 "2018-06-09T07:09:26Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![overall](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/overall/32/5437_2.png) [@overall](https://foros.velneo.com/u/overall)\
**Post date:** [9 Junio, 2018 07:09 UTC](https://foros.velneo.com/t/interaccion-entre-formulario-qml-y-formulario-que-lo-lanza/9904/1 "2018-06-09T07:09:26Z")

</div>

Tengo un formulario principal que tiene un control Vista de datos don de lanzo un formulario QML que me muestra un calendario. Quiero que al pinchar en un dia del calendario me devuelva una lista de registro del form principal.  
Lo he probado …

1. Modificando una variable global desde QML. En el form principal tengo un campo que contiene la variable (se modifica correctamente), pero si hago una conexión de evento “valué changed”, no hace nada.
2. Lanzando una acción desde QML: si es una acción que dispara una señal, no hace nada.

No consigo interactuar entre en form QML y el principal, para que me pueda lanzar un Manejador de evento.  
Alguien sabe como se hace o si se puede hacer?  
Gracias

---

<div class="post-metadata">

**Author:** ![sergioinfortic](https://avatars.discourse-cdn.com/v4/letter/s/e8c25b/32.png) [@sergioinfortic](https://foros.velneo.com/u/sergioinfortic)\
**Post date:** [13 Junio, 2018 14:40 UTC](https://foros.velneo.com/t/interaccion-entre-formulario-qml-y-formulario-que-lo-lanza/9904/2 "2018-06-13T14:40:25Z")

</div>

Hola.

No soy ningún experto en QML, pero es sencillo recoger la fecha seleccionada en una variable global y después desde velneo hacer con ella lo que quieras:

```
import QtQuick 2.4
import QtQuick.Controls 1.3

Item {
    id: marco
    width: 300; height: 400
    focus: true
	
	Calendar {
		id: calendario;		
		anchors.fill: parent;		
		weekNumbersVisible: false;
		selectedDate: theApp.globalVarToDate("TU_PROYECTO/VARIABLE_GLOBAL_FECHA")
		onClicked: {			
			theApp.setGlobalVar("TU_PROYECTO/VARIABLE_GLOBAL_FECHA",calendario.selectedDate);						
		}
	}
}
```

---

<div class="post-metadata">

**Author:** ![overall](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/overall/32/5437_2.png) [@overall](https://foros.velneo.com/u/overall)\
**Post date:** [14 Junio, 2018 04:31 UTC](https://foros.velneo.com/t/interaccion-entre-formulario-qml-y-formulario-que-lo-lanza/9904/3 "2018-06-14T04:31:17Z")

</div>

Gracias @sergioinfortic, esto ya lo he hecho, al seleccionar la fecha del calendario acuatizo la variable global, pero como hago para que me refresque una lista de registros que tengo justo debajo del calendario? No encuentro la forma de que me pueda disparar un Manejador de evento,  
Se puede?

---

<div class="post-metadata">

**Author:** ![sergioinfortic](https://avatars.discourse-cdn.com/v4/letter/s/e8c25b/32.png) [@sergioinfortic](https://foros.velneo.com/u/sergioinfortic)\
**Post date:** [14 Junio, 2018 09:13 UTC](https://foros.velneo.com/t/interaccion-entre-formulario-qml-y-formulario-que-lo-lanza/9904/4 "2018-06-14T09:13:06Z")

</div>

mmmmm, Eso ya no lo he probado.

Se me ocurre la técnica de siempre:

Un manejador de evento carga la lista,  
Un botón oculto BTN\_REF (tamaño 0,0 no seleccionable con tab) que dispara el manejador.

Ahora hay que intentar que el QML ejecute el botón.

No lo he probado, pero debería ser algo como:

theRoot.dataView().control("BTN\_REF ").click();

Como te digo no lo he probado, depende de cómo esté incrustado el formulario y el botón puede que tengas que acceder al parentDataView() de theRoot.dataView()

Esto ya es prueba y error.

---

<div class="post-metadata">

**Author:** ![overall](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/overall/32/5437_2.png) [@overall](https://foros.velneo.com/u/overall)\
**Post date:** [14 Junio, 2018 15:15 UTC](https://foros.velneo.com/t/interaccion-entre-formulario-qml-y-formulario-que-lo-lanza/9904/5 "2018-06-14T15:15:10Z")

</div>

Gracias @sergioinfortic, lo he probado, pero no hay forma de hacer que se dispare el proceso, no hace nada.  
Un proceso que a priori parece tan sencillo, no se puede o no se sabe como hacerlo.  
Alguien ha necesitado algo parecido?  
Gracias de nuevo

---

<div class="post-metadata">

**Author:** ![sergioinfortic](https://avatars.discourse-cdn.com/v4/letter/s/e8c25b/32.png) [@sergioinfortic](https://foros.velneo.com/u/sergioinfortic)\
**Post date:** [14 Junio, 2018 16:11 UTC](https://foros.velneo.com/t/interaccion-entre-formulario-qml-y-formulario-que-lo-lanza/9904/6 "2018-06-14T16:11:27Z")

</div>

Hola.

Yo acabo de probarlo y me funciona:

theRoot.dataView().parentDataView().control(“BTN\_REF”).click();

Si ves que no te va dilo y te lo meto en un vin

---

<div class="post-metadata">

**Author:** ![sergioinfortic](https://avatars.discourse-cdn.com/v4/letter/s/e8c25b/32.png) [@sergioinfortic](https://foros.velneo.com/u/sergioinfortic)\
**Post date:** [14 Junio, 2018 16:20 UTC](https://foros.velneo.com/t/interaccion-entre-formulario-qml-y-formulario-que-lo-lanza/9904/7 "2018-06-14T16:20:04Z")

</div>

[pruebaQML.vin](https://canada1.discourse-cdn.com/flex035/uploads/velneo/original/2X/7/7bbaad23ff5911561b5960fa076b1c776b481767.vin) (1,7 KB)

---

<div class="post-metadata">

**Author:** ![overall](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/overall/32/5437_2.png) [@overall](https://foros.velneo.com/u/overall)\
**Post date:** [14 Junio, 2018 18:08 UTC](https://foros.velneo.com/t/interaccion-entre-formulario-qml-y-formulario-que-lo-lanza/9904/8 "2018-06-14T18:08:46Z")

</div>

Muchas gracias @sergioinfortic, funciona perfecto. Al copiar el txt no se rociaron bien las comillas. Saludos

---

<div class="post-metadata">

**Author:** ![sergioinfortic](https://avatars.discourse-cdn.com/v4/letter/s/e8c25b/32.png) [@sergioinfortic](https://foros.velneo.com/u/sergioinfortic)\
**Post date:** [15 Junio, 2018 06:42 UTC](https://foros.velneo.com/t/interaccion-entre-formulario-qml-y-formulario-que-lo-lanza/9904/9 "2018-06-15T06:42:59Z")

</div>

Ojo cuando copies código js desde el foro, tiene esa mala costumbre

---

<div class="post-metadata">

**Author:** ![overall](https://yyz1.discourse-cdn.com/flex035/user_avatar/foros.velneo.com/overall/32/5437_2.png) [@overall](https://foros.velneo.com/u/overall)\
**Post date:** [15 Junio, 2018 08:39 UTC](https://foros.velneo.com/t/interaccion-entre-formulario-qml-y-formulario-que-lo-lanza/9904/10 "2018-06-15T08:39:57Z")

</div>

@sergioinfortic, muchas gracias, me estaba volviendo loco.
