Lista QML
Última actualización
¿Te fue útil?
Última actualización
¿Te fue útil?
Se trata de un que sirve para presentar listas de de las , en un modelo programado en lenguaje QML.
En el código fuente del fichero QML es obligatorio incluir el objectName: “theListView” para que Velneo alimente el modelo de QML.
En el código QML, el modelo de datos debe tener el nombre theListModel para que Velneo sea capaz de alimentarlo con los registros de la lista.
Este objeto siempre va asociado a una tabla de un El flujo es Lista de la tabla asociada tanto para la entrada como para la salida.
Por último, en el código QML hay que declarar la señal selectionChanged(int index) para que Velneo reciba la señal de cambio de elemento seleccionado.
Esta señal debe dispararse cuando en QML cambie el elemento en curso onCurrentIndexChanged.
Para crear un objeto de este tipo seleccionar la opción nuevo objeto/lista QML del menú objetos de Velneo vDevelop o a través de la galería de objetos.
Las propiedades de este objeto son:
Etiqueta alfanumérica que identifica de forma unívoca al objeto dentro del proyecto. Este identificador será el que usemos para referenciarlo en otras propiedades de otros objetos.
El identificador constará de mayúsculas y números exclusivamente. Al identificar de forma unívoca un objeto no puede haber duplicidad.
Etiqueta alfanumérica que servirá como descriptor del objeto. Se usará para presentar información del objeto en otros objetos y en los .
Podemos definir una etiqueta por cada idioma presente en el proyecto.
Podemos definir los estilos siguientes:
Limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.
Cuando la lista qml va a ser el origen en un evento de drag and drop, si está activado este estilo, en ejecución los items arrastrados no serán quitados de la misma tras ejecutar el evento de drop.
Cuando la lista qml va a ser el origen en un evento de drag and drop, si está activado este estilo, en ejecución los items arrastrados serán quitados de la misma tras ejecutar el evento de drop.
Si la lista qml tiene asociado un formulario de modificación, si este estilo está activado al hacer un clic sobre un ítem de la rejilla éste será editado en el formulario correspondiente. Si este estilo está desactivado el usuario tendrá que hacer doble clic para editar la ficha.
Permite omitir la barra de título de la ventana. Solamente funcional en cuadros de diálogo.
Permite omitir el menú de sistema de la ventana.
Permite ocultar el botón maximizar de la ventana.
Permite ocultar el botón minimizar de la ventana.
Permite ocultar el botón de cierre de la ventana.
Esta propiedad nos permite documentar el uso del objeto.
En este parámetro seleccionaremos el fichero de script que contenga el código QML que deseamos utilizar. En la ventana de selección del fichero a asociar al control podemos activar la opción aplicar macros. Si se activa lo que se hace es sustituir el id_ref de proyecto por la macro (CurrentProject). De esta forma, cuando movamos el script y el objeto lista QML de un proyecto a otro, la referencia se conservará gracias a la macro, apuntando al fichero correspondiente buscándolo en el proyecto en curso.
En esta propiedad especificaremos el modo en el que será redimensionado el contenido del objeto en función del espacio disponible en la pantalla. Los valores posibles son:
Este valor lo usaremos cuando queramos que el objeto tenga un tamaño constante definido en el propio código QML.
El contenido del control donde se use este objeto se expandirá/contraerá según el espacio disponible.
En este parámetro, mediante una fórmula especificaremos la cadena de texto a presentar por cada elemento del modelo principal (theListModel), que en el código html estará declarado con la etiqueta displayEn el código QML Se declarará un elemento Text con el source: display para incluir el texto especificado en esta propiedad.
En este parámetro, mediante una fórmula compondremos la url de la imagen a presentar por cada elemento del modelo principal, junto con el texto, que en el código html estará declarado con la etiqueta decoration.
En el objeto Lista QML, en las fórmulas de url imagen, referenciaremos las imágenes siguiendo la estructura siguiente:
"image://velneo/?/ALIAS_PROJECT/IDOBJETO/[DATO]"
El carácter marcado con ? puede ser:
D – dibujo: "image://velneo/D/ALIASPRO/IDOBJETO"
I – Icono de tabla estática: "image://velneo/I/ALIASPRO/IDTABLAEST/Campo"
C – Campo objeto dibujo: “image://velneo/C/ALIASPRO/IDTABLA/Campo”
Un ejemplo de fórmula de url imagen para QML podría ser:
Campo objeto dibujo de la ficha en curso o un dibujo si el campo está vacío.
choose(#CARTEL:isEmpty(),
“image://velneo/D/CINE_APP/FILM_128”,
“image://velneo/C/CINE_APP/PELICULAS/” + #CARTEL)
O bien con el id del fichero
choose(#CARTEL:isEmpty(),
“image://velneo/D/2btkzgbl.vca/FILM_128”,
“image://velneo/C/2btkzgb5.vcd/PELICULAS/” + #CARTEL)
En el código QML se declara un elemento Image con el source: decoration para incluir la imagen de esta propiedad del objeto Lista QML de.
Formulario del proyecto en curso o de un proyecto heredado que será usado para dar de alta una ficha desde este objeto.
Formulario del proyecto en curso o de un proyecto heredado que será para editar una ficha desde este objeto. Si en el código QML queremos disparar el formulario de modificación asociado a la lista QML, se debe declarar la señal itemActivated(int index) para poder mostrar el formulario de edición del elemento seleccionado. Ejemplo:
signal itemActivated(int index)
Formulario del proyecto en curso o de un proyecto heredado que será para eliminar una ficha desde este objeto.
El menú de contexto es el que aparece cuando el usuario final hace clic con el botón derecho del ratón. Los valores posibles son:
El objeto carecerá de menú de contexto.
El objeto dispondrá de un menú de contexto creado automáticamente por el sistema, que contendrá las opciones siguientes:
Alta de ficha: Si el objeto tiene asociado un formulario de altas, lo abrirá para que el usuario pueda añadir una ficha.
Modificación de ficha: Editará la ficha seleccionada en el formulario de modificación asociado al objeto.
Baja de ficha: Abrirá el formulario de bajas asociado al objeto.
Invertir: Invierte el orden de la lista, usando para ello el campo por el que se encuentra ordenada.
Filtrar: Permite al usuario establecer y aplicar un filtro al objeto.
Ordenar: Permite al usuario ordenar la lista por el campo que elija.
Quitar de la lista el seleccionado: Quita del objeto el registro que el usuario tenga seleccionado. No lo borra físicamente, sino que simplemente lo quita de la lista.
El objeto dispondrá de un menú de contexto creado automáticamente por el sistema que, además de las opciones del menú por defecto, incluye las siguientes:
Modificar campo…: Permitirá al usuario modificar un campo de todos los registro de la lista.
Modificar campo si…: Permitirá al usuario modificar un campo de todos los registro de la lista que cumplan una determinada condición.
Exportar a XML: Permitirá al usuario exportar los registros de la lista a un fichero XML.
Esta propiedad solamente estará disponible cuando el valor de la propiedad tipo de menú de contexto sea personalizado. Nos permitirá seleccionar el objeto menú que queramos usar como menú de contexto del objeto.
Si seleccionamos una toolbar en este parámetro, cada vez que usemos este objeto, éste llevará embebido la toolbar seleccionada, que podrá situarse, o bien encima o bien debajo del objeto.
Es un reloj que permitirá ejecutar automáticamente uno o varios manejadores de evento declarados en el objeto de forma periódica. En este parámetro se indicará el tiempo, en milisegundos, para cada iteración del timer. Si el valor es 0, querrá decir que no se activará el timer.
En una lista QML podemos mostrar una imagen y un texto, mediante el uso de las propiedades url imagen y contenido, respectivamente. Los UserRoles nos permitirán añadir más campos o más información en el objeto QML que programemos.
Etiqueta alfanumérica que identifica de forma unívoca al objeto dentro del proyecto. Este identificador será el que usemos para referenciarlo en otras propiedades de otros objetos.
El identificador constará de mayúsculas y números exclusivamente. Al identificar de forma unívoca un objeto no puede haber duplicidad.
Etiqueta alfanumérica que servirá como descriptor del objeto. Se usará para presentar información del objeto en otros objetos y en los inspectores.
Podemos definir una etiqueta por cada idioma presente en el proyecto.
Podemos definir el estilo privado que limita el acceso del usuario final al sub-objeto desde puntos donde no se haya programado el acceso al mismo.
Esta propiedad nos permite documentar el uso del sub-objeto.
En este parámetro indicaremos el nombre que usaremos para referenciar al sub-objeto dentro del código QML.
En este parámetro, mediante una fórmula especificaremos la cadena de texto a presentar por cada elemento del modelo auxiliar, que en el código html estará declarado con la etiqueta display.
En la lista QML inicialmente trabajamos sobre un modelo único, llamado theListModel, que estará alimentado por la lista original.
Los AuxModels o modelos auxiliares nos permitirán declarar otros modelos, para trabajar con otras listas, que podrán estar sincronizadas, o no, con la lista principal.
Las propiedades es este sub-objeto son:
Etiqueta alfanumérica que identifica de forma unívoca al objeto dentro del proyecto. Este identificador será el que usemos para referenciarlo en otras propiedades de otros objetos.
El identificador constará de mayúsculas y números exclusivamente. Al identificar de forma unívoca un objeto no puede haber duplicidad.
Etiqueta alfanumérica que servirá como descriptor del objeto. Se usará para presentar información del objeto en otros objetos y en los inspectores.
Podemos definir una etiqueta por cada idioma presente en el proyecto.
: Podemos definir el estilo privado que limita el acceso del usuario final al objeto desde puntos donde no se haya programado el acceso al mismo.
Esta propiedad nos permite documentar el uso del sub-objeto.
En esta propiedad indicaremos el nombre que usaremos para referenciar al modelo dentro del código QML.
En este parámetro indicaremos el modo en el que este modelo auxiliar se sincronizará con el modelo principal. Los valores posibles son:
Se definirá dentro del código QML cuándo se cargará el modelo auxiliar del modelo principal.
Al cargar el modelo principal, se cargarán todos los modelos auxiliares de todos los registros de la lista. Esta opción, por tanto, puede penalizar la carga del objeto si se trata de listas grandes.
Será Velneo quien realice el cambo de modelo auxiliar a presentar en cuanto reciba la señal de cambio de selección. Se cargará un único modelo auxiliar para todos los registros del modelo principal.
Por cada ítem del modelo principal (theListModel) se creará el auxModel y se cargará cuando se reciba la señal de cambio de selección.
En este parámetro declararemos el proceso que alimentará el auxModel. El proceso podrá tener como entrada: Una ficha o una lista de la tabla asociada al theListModel o sin origen, y como salida una lista de la tabla que queramos asociar al auxModel.
En este parámetro, mediante una fórmula especificaremos la cadena de texto a presentar por cada elemento del modelo auxiliar, que en el código html estará declarado con la etiqueta display.
En el código QML Se declarará un elemento Text con el source: display para incluir el texto especificado en esta propiedad.
En este parámetro, mediante una fórmula compondremos la url de la imagen a presentar por cada elemento del modelo auxiliar, junto con el texto, que en el código html estará declarado con la etiqueta decoration.
En QML, en las fórmulas de url imagen, referenciaremos las imágenes siguiendo la estructura siguiente:
“image://velneo/?/ALIAS_PROJECT/IDOBJETO/[DATO]”
El carácter marcado con ? puede ser:
D – dibujo: “image://velneo/D/ALIASPRO/IDOBJETO”
I – Icono de tabla estática: “image://velneo/I/ALIASPRO/IDTABLAEST/Campo”
C – Campo objeto dibujo: “image://velneo/C/ALIASPRO/IDTABLA/Campo”
Un ejemplo de fórmula de url imagen para QML podría ser:
Campo objeto dibujo de la ficha en curso o un dibujo si el campo está vacío.
o bien con el id del fichero
En el código QML se declara un elemento Image con el source: decoration para incluir la imagen de esta propiedad del objeto Lista QML de.
El QML para resolver las imágenes a incluir necesita una senda que puede ser a una fichero o en disco o una URL para que sea servida por un servidor. Cuando lo hacemos para tablas en disco en la fórmula le damos una URL que resuelve vServer que es el encargado de devolver la imagen al QML, sin embargo estoy no es posible hacerlo con tablas en memoria, ya que no disponemos de un servidor que pueda procesar dicha URL, la alternativa pasa por exportar las imágenes de la tabla en memoria a disco y alimentar el QML con las sendas apropiadas para que QML pueda leer las imágenes de disco.
Un auxModel, al igual que el modelo principal, podrá contener userRoles.
Tabla de un heredado cuyos registros van a ser visualizados en la rejilla.
El menú de contexto del objeto será un objetocontenido en el proyecto.