Hacia el casillero perfecto


([N1] desarrollo) #1

Buenas!
Hasta donde yo se y hasta donde he podido llegar, con los casilleros de v7 o quedan espacios muertos o salen barras de desplazamiento, pero no he podido encontrar la forma de autoajuste que había en v6, en la que te despreocupabas de cuántos elementos había que mostrar y el formulario ajustaba perfectamente el espacio a las celdas necesarias.
He probado a utilizar un formulario QML como formulario del casillero, pero tampoco ajusta.
Y dando vueltas a los ejemplos y tutoriales, vi el de la calculadora en el que las teclas se ajustaban perfectamente al espacio de la ventana. Incluso el texto se ajusta en tamaño. Una maravilla! Se le puede poner su menú contextual, se manejan perfectamente las pulsaciones… Todo perfecto! Salvo que soy incapaz de ligarlo a una lista de datos para que en vez de elementos fijos, muestre los elementos de la lista. Adjunto pantallas de cómo queda el casillero en v7 y de cómo redimensiona el casillero QML, así como muestra del código que utiliza y el intento frustrado de uso del ‘theListView’ y del ‘theListModel’…
Alguien se anima? :wink:
Adjunto también el .vin del ejemplo, así como la ruta para probarlo en un vServer:

vatp://v7cloud3.velneo.com:6916
Usuario
1234

Saludos,

César Carnicero [attachment=24635,1920] [attachment=24635,1921] [attachment=24635,1922]

Casillero_QML.zip (13.5 KB)

Pantallas.zip (328 KB)

Casillero_QML.zip (13.5 KB)

Casillero_QML.zip (13.5 KB)

Pantallas.zip (328 KB)

Casillero_QML.zip (13.5 KB)


([N1] desarrollo) #2

Las imágenes. [attachment=24637,1923] [attachment=24637,1924] [attachment=24637,1925] [attachment=24637,1926]










([N1] Pepeto) #3

Muchas gracias por la aportación.
Y ¡si!, tienes razón, la mejor opción para los casilleros, es usar QML

un saludo
José Luis
http://www.ascsl.com


([N1] desarrollo) #4

Hmm… Bueno…
Digamos que lo expuesto en los pantallazos, es lo que nos gustaría conseguir pero con conexión a datos de Velneo. Como veréis, en el código están puestos ‘a pelo’ los botones que se muestran. Y funcionan y se autoajustan perfectamente, pero lo que desearíamos es que esos botones fueran los correspondientes a los registros de la lista que pasamos al proceso QML. Y eso es lo que se nos resiste y para lo que buscamos vuestra colaboración.
Hemos conseguido que funcione con un ListView y con un GridView, pero no con un Grid que es el que ajusta tal y como se muestra en los pantallazos.


([N1] Pepeto) #5

Creo que este es el QML que necesitas:

import QtQuick 1.0
import “Core”

Rectangle {
id: window
color: ‘lightgray’
width: 200; height: 200

property int filas: 4
property int cols: 4
property int espacio: 6

GridView {
    id: main
	anchors.fill: parent

	objectName: "theListView"
    width: (parent.width/cols); height: (parent.height/filas)

	cellHeight: (parent.height / filas)
	cellWidth: (parent.width / cols)

	model: theListModel
	delegate:
		Button { 
			width: main.cellWidth; height: main.cellHeight
			operation: "T"; color: 'blue' 
		}
}

}

un saludo
José Luis
http://www.ascsl.com


([N1] Pepeto) #6

Se me olvidaba, en la propiedad URL imagen del objeto QML, debes indicar la siguiente fórmula:

choose(#IMAGEN:isEmpty()
, “image://velneo/D/3e8v1efi.vca/DIBUJO”
, “image://velneo/C/3e8v1efi.vca/IMAGENES/” + #IMAGEN )

un saludo
José Luis
http://www.ascsl.com


([N1] Pepeto) #7

Por cierto,
Para que funcione, debes crear registros en la tabla IMAGENES :wink:
Y tener un objeto DIBUJO en el proyecto de aplicacion.


([N1] desarrollo) #8

Gracias, José Luis.
Es un muy buen punto de partida, porque no habíamos conseguido con el GridView hacer que encajaran como queríamos.
Vamos a intentar perfeccionarlo a nuestro gusto y necesidades y publicaremos la solución a la que lleguemos.
Por terminar de pulirlo… habría forma de pasarle las filas y columnas como parámetros? Sería ideal utilizar algún tipo de variables, pero si no se puede?

César


([N1] desarrollo) #9

Hola de nuevo!
Perfecto, perfecto, no es, pero a nosotros ya nos vale tal y como está.
Una vez conseguido con el GridView poder asignar sobre un tamaño variable de pantalla, filas y columnas y que sobre ese espacio, redimensione las celdas, para nosotros ya es operativo. Y siempre unido a una lista de registros de Velneo.
No hemos conseguido cambiar la geometría del casillero (si ya está abierto en una ventana), a otra distribución de filas y columnas distintas. Pero con que lo haga sobre la ventana inicial o sobre una nueva, nos vale.
Os adjunto imágenes para que veáis cómo ajusta.
En el primer ejemplo (a ventana completa), y con distintas resoluciones de pantalla, ajustamos 500 registros en 23 o 40 columnas. Jugamos con estilos de colores y condiciones para mostrarlos usando user roles.
En el segundo (integrado en el formulario principal), al abrirse carga el número de registros que tiene generado distribuyéndolos de forma automática en filas y columnas.
Adjunto también el .vin y mantenemos durante unos días el proyecto en el servidor que al inicio del hilo especificamos.

Saludos,

César Carnicero.
ICenter [attachment=24886,1943] [attachment=24886,1944] [attachment=24886,1945] [attachment=24886,1946] [attachment=24886,1947]





Casillero_QML.zip (10.8 KB)





Casillero_QML.zip (10.8 KB)


([N4] mdelgado) #10

@Cesar

Gracias