Ejercicios QML (ejemplos de Paco)


([N2] overBCN) #1

Hola, Estoy probando algunos de los ejercicios de Paco sobre QML, pero no consigo implementarlos en mi app.
Ejemplo: el ejercicio “Tipos QML de QTMultimedia” - “Cámara” o “Cámara Full”
He importado el directorio “qml_camera”
He creado un formulario QML y le he asignado el Fichero QML que sale en el ejemplo.
Lanzo el formulario desde una Acción, pero no hac nada, solo se dispara la cámara. Este comportamiento me la hace con muchos ejemplos, no sale nada.
Un ejemplo como “Calendario” que está en “Tipos QML de QTQuick.Controls”, tampoco me aparece nada.
Que me estoy dejando?, que hago mal?
Gracias


([N3] pacosatu) #2

Hola overBCN.

El código QML de los ejemplos se ejecuta a partir de un editor de código y esto nos permite algo impensable en la filosofía Velneo, la ejecución dinámica de código en tiempo de ejecución.

Para adaptar el código QML de ejemplo a tu aplicación debes poner la propiedad “Redimensionamiento” del formulario QML a Expandir/Contraer, de esta forma el Item principal del QML tomará un tamaño determinado, cosa que no te está ocurriendo ahora, por eso no ves nada. QML es muy delicado con los anclajes y tamaños.

Para mostrar mensajes en tiempo de ejecución hago uso de una función propia mostrarMensaje(). Tendrás que comentar las líneas donde aparezca.

Si quieres probar la cámara en algún móvil o tablet, con uso de la cámara trasera y frontal, del flash y la posibilidad de guardar las fotos en una tabla, tienes la aplicación vatp://pruebas:pruebas@c3.velneo.com:10180/0PS_Rotulo_LED_iapp.

Como siempre digo son meros ejercicios y en este caso debido a la fragmentación existente en los dispositivos móviles verás que ni siquiera QML se libra de ello. Con cada versión nueva de Velneo, algunas cosas empiezan a funcionar más o menos bien, pero otras dejan de funcionar o cambian su comportamiento.
Un ejemplo, la cámara delantera se mostrará girada un determinado ángulo dependiendo del dispositivo y además una vez hagas la captura vuelve a cambiar el giro. Todo esto aliñado con constantes cierres inesperados de vClient.

Creo que a QML de Velneo y sobre todo al tema multimedia todavía le quedan varias versiones. Ya veremos.

Saludos
Paco Satué


([N2] overBCN) #3

Muchas gracias Paco, solo faltaba este detalle para que funcionara.
He probado la cámara de tu app, y funciona bastante bien, aunque la frontal se ve boca abajo.
Los ejemplos de esta app (código QML) se pueden ver en algún sitio.
Muchas gracias por todo. Al menos estos ejemplos sirven de base para poder avanzar.


([N2] overBCN) #4

Hola de nuevo,
Tengo un formulario con una vista de datos que lanza el formulario QML.
Como puedo recuperar una variable del primer formulario que lanza el fichero QML?
En el formulario QML he creado una variable, como pongo la variable en el fichero QML?
He puesto el siguiente código en el formulario QML para recuperar la información de un variable Global, pero no hace nada.
color: theApp.globalVarToInt (“xxxxxxxx/TXT_TAB”)
Perdonar mi ignorancia en este tema, pero no hay información QML relacionada con Velneo.
Gracias


([N3] pacosatu) #5

Hola overBCN.

La propiedad “color” en QML es normalmente un string de la forma hexadecimal “#RRGGBB” o el nombre de un color.
Por lo tanto, usa la función theApp.globalVarToString (“xxxxxxxx/TXT_TAB”).

Saludos
Paco Satué


([N2] overBCN) #6

Gracias Paco,
Y ahora como le paso el color seleccionado a la variable del formulario Origen?


([N3] pacosatu) #7

Hola overBCN.

Desde QML tienes acceso al API de Velneo, aunque con algunas limitaciones.

El objeto theRoot te permitirá acceder al formulario que contiene el QML.
Usa theRoot.dataView().setVar(…) para pasar variables desde QML al formulario Velneo.

Saludos
Paco Satué


([N2] overBCN) #8

Ok, muchas gracias Paco


([N2] overBCN) #9

Cuando lanzo el selector de color en IOS, el formulario para la selección del color me sale partido. He intentado desplazar el form con x e y, pero no hace nada. Tiene solución?
Gracias


([N3] pacosatu) #10

Hola overBCN.

Tendría que ver el código. Ya te dije que la casuística es muy variada.
El mismo código funciona perfecto en un dispositivo y en otro se desbarata completamente.

Es cuestión de horas y horas de prueba y error. Al final sale, pero claro a un coste …

Saludos
Paco Satué


([N2] overBCN) #11

Buenos días Paco,
Aqui te dejo el código QML:
import QtQuick 2.6
import QtQuick.Controls 1.3
import QtQuick.Dialogs 1.1

Item {
width: 320
height: 240
SystemPalette { id: palette }
clip: true

	ColorDialog {
	id: colorDialog

	modality: colorDialogModal.checked ? Qt.WindowModal : Qt.NonModal
	title: "Seleccione el color"

	color: theApp.globalVarToString ("overScanT_db/TXT_TAB")  // Recogemos variable Global
		
		onAccepted: {
			console.log("Accepted: " + color)
			theApp.setGlobalVar ("overScanT_db/TXT_TAB", "" + color)  // Devuelve variable Global
			
			}
		onRejected: {
			console.log("Rejected") 
			}
	}
	

	Column {
	anchors.fill: parent
	anchors.margins: 0
	spacing: 0

	Row {
		id: colorRow
		spacing: parent.spacing
		height: colorLabel.implicitHeight * 2.0
		Rectangle {
			color: colorDialog.color
			height: parent.height
			width: height * 2
			border.color: "black"
			MouseArea {
				anchors.fill: parent
				onClicked: colorDialog.open()
			}
		}
		Label {
			id: colorLabel

			}

	}
}

}

Con relación a la cámara, el ejemplo que está muy bien es el que tienes en la app “vatp://pruebas:pruebas@c3.velneo.com:10180/0PS_Rotulo_LED_iapp.”, hace una buena gestión de la cámara y su posterior edición. Se puede conseguir?
Gracias