Hola,
Quisiera lanzar un “Manejador de Evento” desde un botón que quiero lanzar desde una Lista QML. Ahora me lanza el formulario de edición del registro
También quisiera saber como le puedo poner un color de fondo al botón, al texto y dale un tamaño al texto. No lo consigo.
La verdad es que no tengo mucha idea de QML
Gracias
El código que pego es de una ‘Lista QML’
En esa lista, se activa la señal al cambiar el elemento seleccionado y eso puede disparar el evento desde el formulario donde está la lista en cuestión.
El texto que se muestra en cada celda es lo que hay como ‘display’, que es el campo que pasas como ‘Contenido’ a la lista.
Los colores pueden ser campos fórmula de la tabla en función de su estado. Los pasas a la lista como UserRoles.
El resultado es un casillero autoajustado al número de filas y columnas que le pases con las dimensiones de pantalla completa.
Gracias, pero lo que quiero es poder lanzar un “Manejador de Evento” desde un botón. El manejado de Evento se encuentra en la misma “Lista QML” del control
Gracias
Para tener control en QML sobre los eventos velneo necesitas intermediar mediante un formulario Velneo.
Creas el formulario velneo
Defines el evento
Creas un botón oculto que lanza el evento
Dentro del formulario velneo muestras el Formulario o Lista QML
Desde QML manejas el botón mediante la API de V7 y lo pulsas
Recuerda que la API de velneo es limitada desde QML.
Estas técnicas avanzadas se explican en el curso de QML de AyudaVelneo (también se explican otras técnicas para resolver los problemas habituales).
Para manejar desde QML el Botón oculto que propone Jorge debes usar el API al igual que lo harías desde vJavascript:
var oForm = theRoot.dataView().parentDataView()
var oBoton = oForm.control("CMD_EVENTO_QML")
oBoton.click()
Yo otras veces también uso un Timer para disparar el manejador de evento concreto. Con esto no necesitas tener un formulario padre que contenga el formulario QML.
Un ejemplo:
******* CÓDIGO QML ******
.....
MouseArea {
width: fondo.width
height: fondo.height
anchors.bottom: parent.bottom
onClicked: {
// no funciona el comando alert de JS en QML, lo delegamos en Velneo
verAlerta()
}
}
.....
function verAlerta() {
theRoot.setVar("NACCION", 2)
theRoot.dataView().startTimer(50)
// También podemos usar un Botón (oculto) para lanzar el Manejador
// var oForm = theRoot.dataView().parentDataView()
// var oBoton = oForm.control("CMD_EVENTO_QML")
// oBoton.click()
}
***************************
******* CÓDIGO Velneo del Manejador del evento TIMER disparado desde QML ******
var oForm = theRoot.dataView();
// Paramos el Timer
oForm.stopTimer()
// La variable local NACCION determina qué queremos hacer
var nAccion = theRoot.varToInt("NACCION")
theRoot.setVar("NACCION",0)
switch (nAccion) {
case 1:
........
break
case 2:
alert("Alerta desde el <b>formulario QML</b>","QML Alert")
break
}
Jorge, dices que son técnicas avanzadas. ¡Hombre! son chapucillas que tenemos que ir descubriendo después de muchos prueba y error. Y error me refiero a múltiples cierres bruscos de vClient sin que tengamos una mínima herramienta de depuración. Es cierto que el acople API/QML tiene muchas grietas que habrá que ir registrando para evitarlas.
QML está cojo… cojo… digamos que estas ñapas son como las muletas hasta que nos quiten la escayola.
Ya sabes que no me suelo cortar demasiado a la hora de comentar los problemas que tiene Velneo http://tipesoft.com/mas-soft-menos-hard/. Dicho esto… con QML1 (mediante estas y otras muletas) se pueden hacer interfaces muy buenos.
Con la 2.x se podrán hacer aplicaciones de gran alcance (aunque nunca seran life is soft). La unica cuestion que velneo tiene que resolver es la falta de integracion de la API Velneo con QML2… si lo logran tendran un gran producto en la vertiente mobile. Si dan soporte a arm para el vclient tendra tambien grandes opciones en software empotrado.