Hola!
El código que pego es de una ‘Lista QML’
En esa lista, se activa la señal al cambiar el elemento seleccionado y eso puede disparar el evento desde el formulario donde está la lista en cuestión.
El texto que se muestra en cada celda es lo que hay como ‘display’, que es el campo que pasas como ‘Contenido’ a la lista.
Los colores pueden ser campos fórmula de la tabla en función de su estado. Los pasas a la lista como UserRoles.
El resultado es un casillero autoajustado al número de filas y columnas que le pases con las dimensiones de pantalla completa.
Saludos,
César
// —————————— Casillero ——————————
import QtQuick 1.0
Rectangle
{
id: mainRect
anchors.fill: parent; color: “#ffffff”;
property int anchoventana: theMainWindow.width()
property int columnas: theApp.globalVarToInt (“Datos/COLUMNAS”)
property int ancho: ((anchoventana / columnas) – 1)
property int altoventana: theMainWindow.height()
property int filas: theApp.globalVarToInt (“Datos/FILAS”)
property int alto: ((altoventana – 50) / filas) – 1
x: ((anchoventana – (columnas * ancho)) / 2); y:0;
GridView
{
id: theListView
objectName: “theListView”
x: 0; y: 0; width: (ancho*columnas) + 2*x; height: 50 + (alto*filas);
signal selectionChanged(int index)
signal itemActivated(int index)
cellWidth: ancho; cellHeight: alto;
// anchors.fill: parent;
focus: true
model: theListModel
delegate:
Column
{
width: theListView.cellWidth; height: theListView.cellHeight;
Rectangle {
id: root
width: ancho – 1; height: alto -1
color: userrole1
Text {
id: texto
text: display
anchors.centerIn: parent; anchors.verticalCenterOffset: -1
font.pixelSize: parent.width > parent.height ? parent.height * .35 : parent.width * .35
style: Text.Sunken; color: userrole2; styleColor: userrole3; smooth: true
}
}
MouseArea
{
anchors.fill: parent
acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked:
{
theListView.currentIndex = index
}
onDoubleClicked: { theListView.itemActivated(index) }
}
}
onCurrentIndexChanged:
{
theListView.selectionChanged(theListView.currentIndex);
}
}
}