QML: tutor básico
Ejemplo 1
///////////////////////////////////////////////////////////////////////////////////////////////////
//
// TUTORIAL VELNEO V7 INTEGRADO EN QML - PASO 1
//
// QML sencillo donde se declararan los elementos mínimos para integrar Velneo V7 en un script QML.
//
import QtQuick 2.6
///////////////////////////////////////////////////////////////////////////////////////////////////
// Es necesario definir un rectángulo que será el marco de la aplicación.
// Las dimensiones del marco se comportarán como tamaño mínimo del objeto QML en V7.
//
Rectangle
{
id: marco
width: 300; height: 200
focus: true
////////////////////////////////////////////////////////////////////////////////////////////// /////
// Utilizamos un elemento gridview para construir un casillero dentro del marco.
// Es obligatorio incluir el objectName: "theListView" para que V7 alimente el modelo de QML.
// Hay que declarar la señal selectionChanged(int index) para que V7 reciba la señal de cambio de elemento seleccionado.
// Esta señal debe dispararse cuando en QML cambie el elemento en curso onCurrentIndexChanged.
//
GridView
{
id: casillero
objectName: "theListView"
signal selectionChanged(int index)
onCurrentIndexChanged:
{
casillero.selectionChanged( casillero.currentIndex )
}
cellHeight: 100; cellWidth: 120
anchors.fill: parent
focus: true
///////////////////////////////////////////////////////////////////////////////////////////////////
// Es obligatorio declarar el modelo con el nombre theListModel.
//
model: theListModel
delegate:
Column
{
width: casillero.cellWidth
height: casillero.cellHeight
///////////////////////////////////////////////////////////////////////////////////////////////////
// Se declara un elemento Image con el source: decoration para incluir la imagen de la propiedad "URL imagen" del objeto QML de V7.
//
Image
{
source: decoration
width: 100; height: 80
anchors.horizontalCenter: parent.horizontalCenter
}
///////////////////////////////////////////////////////////////////////////////////////////////////
// Se declara un elemento Text con el source: display para incluir el texto de la propiedad "Contenido" del objeto QML de V7.
//
Text
{
text: display + '<b></b>'
width: 110
clip: true; elide: Text.ElideRight
anchors.horizontalCenter: parent.horizontalCenter; horizontalAlignment: Text.AlignHCenter
}
///////////////////////////////////////////////////////////////////////////////////////////////////
// En MouseArea declaramos los botones que tendrán funcionalidad y que al hacer clic cambie el elemento seleccionado.
//
MouseArea
{
anchors.fill: parent
acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked: { casillero.currentIndex = index }
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////
// Se declara un componente para marcar visualmente el elemento seleccionado (highlight)
//
Component
{
id: sombra
Rectangle
{
color: "#CCCCCC"
}
}
highlight: sombra
}
}Ejemplo 2
Última actualización
¿Te fue útil?