Mostrar formulario en modo PopUp


([N3] puribe) #1

Buenas tardes

¿Hay alguna forma de mostrar un formulario en modo PopUp al pasar el ratón sobre un control de un formulario?

Nota: Estuve mirando y esta opción de mostrar el formulario en modo PopUp sólo la veo en la propiedad “Comando” de un botón.

Gracias

Paula Uribe.


([N2] ramiro) #2

Buenas tardes:

Creo que con V7 estilo “life is soft” no es posible.

Tal vez se pueda hacer usando JavaScript pero eso es otra historia que yo aún no he leído.

Saludos. Ramiro


([N3] pacosatu) #3

Hola Paula, Ramiro.

En teoría sería posible con Velneo gestionando la Señal “Ratón:movimiento” que ejecute un manejador de evento en el que ya podemos hacer lo que queramos, en este caso mostrar un Formulario Modal (o Popup).

Pues no es así, la Señal Ratón:movimiento no se lanza ni en los botones, ni en los dibujos, ni en los Label, … Así que no es posible capturar el movimiento del ratón sobre un Control del formulario, por lo menos con Velneo.

Mirando la documentación del Evento MouseMoveEvent en QT, se cita la propiedad mouseTracking, la cual debe estar enabled para que no haga falta pulsar un botón del ratón antes de disparar la señal MouseMoveEvent.

Así que me he ido al API de velneo y Voilá, existe la propiedad mouseTracking de la clase Widget.

SOLUCIÓN:
Crea un Manejador de Evento de tipo JS con el siguiente código y lo lanzas desde el ON_INIT del formulario:


var formulario = theRoot.dataView()
var oControl = formulario.control(‘IMG_RUEDA’)
oControl.mouseTracking = true

Y ya funciona, pasando el ratón por encima del control Dibujo “IMG_RUEDA” se dispara la señal Ratón:movimiento sin necesidad de pulsar un botón del ratón.
No es una solución muy Life is Soft, pero creo que esta es la nueva forma de hacer las cosas con Velneo.

Pruébalo y nos cuentas.
Saludos
Paco Satué


([N2] Mgalvezh) #4

Paco, yo lo habia hecho sobre un control edit, que si permite la señal raton:movimiento,y me funciono correctamente, la pregunta es ¿porque algunas señales en algunos widget están desabilitadas ?. Buena investigación y de gran utilidad.

Saludos.
Miguel.


([N2] ramiro) #5

Paco:

Muchas gracias por la información.

Saludos. Ramiro


([N3] puribe) #6

Buenos días a todos

Inicialmente agradezco sus aportes, Les comento que realice lo manifestado por Ramiro y me funciono sin problemas, ya que necesitaba habilitar esta opción del mousetracking en un texto estático.

A este tema también le complementé que al pasar el mouse por el texto ejecutará un manejador de evento en JavaScript y así ejecutar el comando de un botón oculto el cual tenía la instrucción de visualizar el formulario en modo PopUp.

Gracias.

Paula Uribe.


([N3] blavan) #7

Hola otra vez Gracias Paco
Para puribe, yo en el evento sobre el boton creo un manejador de objeto formulario interesado y lo disparo, evidentemente funciona.

No entiendo bien como haces con el boton oculto, podias detallarlo

Gracias


([N3] puribe) #8

Buenos días.

Agradezco nuevamente a todos por la información y especialmente a Paco.

Respondiendo a blavan, el procedimiento es el siguiente:

  1. En una conexión de evento la cual se dispara con la señal “Ratón: en movimiento” en el control texto estático, se relaciona un evento en JavaScript llamado “AbrirFormulario”.

  2. El evento JavaScript contiene la siguientes líneas de código:

var oForm = null, oBoton = null
oForm = theRoot.dataView();
oBoton = oForm.control(“Nombre del botón oculto”).click();

  1. Lo anterior hace que al pasar el mouse por el texto muestre el formulario PopUp.

INQUIETUD:

Para que el formulario visualizado en PopUp se cierre, se le debe dar clic con el mouse a una sección fuera del área del formulario.

¿Hay alguna forma de saber cuando el mouse ya no está en el área del formulario que se muestra como PopUp Para que se cierre?

Estuve mirando en el manual de scripts pero no logro encontrar nada acerca de esto.

Gracias.

Paula.


([N3] blavan) #9

Gracias, como yo expuse lo lanza en modo modal.
Estaría muy bien lograr su ocultación al salir del area del texto
A ver si se logra con la ayuda de la comunidad