Buenas noches al foro , a ver si alguien me puede ayudar.
Estoy migrando los componentes QML1 A QML2 de mis aplicaciones para poder actualizarme a la versión 7.21.
El problema que tengo es que por ejemplo, en un formulario QML en el que mostraba un reloj analógico, al cambiar el “import QtQuick 1.1” por “import QTQuick 2.4”, el formulario aparece en blanco y no muestra nada.
Le he dado mis vueltas y no se a que puede ser debido.
Lo curioso es que el código QML funciona perfectamente en el probador QML de los ejercicios de Paco Satué.
Alguna idea?
El código es el siguiente:
Gracias de antemano.
import QtQuick 2.4
// Uso de ficheros en formato vectorial SVG
// Adaptación del ejemplo https://github.com/elpuri/qml-swiss-railways-clock-svg
// Se ha utiizado el reloj svg de http://codepen.io/jaredkhan/pen/Elrsx
Item {
id: clock;
anchors.fill: parent;
anchors.margins: 30;
property real hours: 0;
property real minutes: 0;
property real seconds: 0;
property real escala: clockFace.width / 400;
// El reloj se adapta al contenedor conservando la proporción ancho/alto
property bool mas_alto: width < height;
Rectangle {
anchors.fill: parent;
color: "WhiteSmoke"
}
Image {
// Reloj
id: clockFace;
smooth: true
width: mas_alto ? parent.width : parent.height;
height: width;
source: "qml_svg/reloj_fondo.svg";
anchors.centerIn: parent;
Image {
// Horas
source: "qml_svg/reloj_horas.svg";
smooth: true;
width: parent.width;
height: width;
transform: Rotation {
origin.x: ((clock.mas_alto ? width : height) / 2) + (5 * escala);
origin.y: ((clock.mas_alto ? width : height) / 2) - (10 * escala);
angle: (clock.hours * 30) + (minutes * 0.5);
Behavior on angle {
SpringAnimation { spring: 2;damping: 0.2;modulus: 360 }
}
}
}
Image {
// Minutos
source: "qml_svg/reloj_minutos.svg";
smooth: true;
width: parent.width;
height: width;
transform: Rotation {
origin.x: ((clock.mas_alto ? width : height) / 2) + (4 * escala);
origin.y: ((clock.mas_alto ? width : height) / 2) - (12 * escala);
angle: (clock.minutes * 6) + (6 / (60 / clock.seconds));
Behavior on angle {
SpringAnimation { spring: 2;damping: 0.2;modulus: 360 }
}
}
}
Image {
// Segundos
source: "qml_svg/reloj_segundos.svg";
smooth: true;
width: parent.width;
height: width;
transform: Rotation {
origin.x: ((clock.mas_alto ? width : height) / 2) + (4.5 * escala);
origin.y: ((clock.mas_alto ? width : height) / 2) - (10.5 * escala);
angle: clock.seconds * 6;
Behavior on angle {
SpringAnimation { spring: 2;damping: 0.2;modulus: 360 }
}
}
}
}
Timer {
// Actualización del reloj
id: lahora
interval: 1000;
running: false;
// A false permite visualizar la animación inicial de las agujas
triggeredOnStart: false;
repeat: true;
onTriggered: {
// mostrarMensaje(segundos.height)
var d = new Date();
clock.hours = d.getHours();
clock.minutes = d.getMinutes();
clock.seconds = d.getSeconds();
}
}
Component.onCompleted: {
// mostrarMensaje("Ancho: " + clockFace.width + "\n" + "Alto: " + clockFace.height);
lahora.start();
}
}