Ricerca…


Osservazioni

Alla proprietà di un oggetto può essere assegnato un valore statico che rimane costante fino a quando non viene assegnato esplicitamente un nuovo valore. Tuttavia, per utilizzare al meglio QML e il relativo supporto integrato per i comportamenti dinamici degli oggetti, la maggior parte degli oggetti QML utilizza i collegamenti di proprietà.

I legami di proprietà sono una caratteristica fondamentale di QML che consente agli sviluppatori di specificare le relazioni tra le diverse proprietà dell'oggetto. Quando le dipendenze di una proprietà cambiano di valore, la proprietà viene automaticamente aggiornata in base alla relazione specificata.

Nozioni di base sulle associazioni di proprietà

Considera questo semplice esempio:

import QtQuick 2.7
import QtQuick.Controls 2.0

ApplicationWindow {
    visible: true
    width: 400
    height: 640

    Rectangle{
        id: rect
        anchors.centerIn: parent
        height: 100
        width: parent.width
        color: "blue"
    }
}

Nell'esempio sopra, la larghezza di Rectangle è legata a quella del suo genitore. Se si modifica la larghezza della finestra dell'applicazione in esecuzione, cambia anche la larghezza del rettangolo.

Un esempio più complicato

Nel semplice esempio, impostiamo semplicemente la larghezza del rettangolo a quella del suo genitore. Consideriamo un esempio più complicato:

ApplicationWindow {
    visible: true
    width: 400
    height: 640

    Rectangle{
        id: rect
        anchors.centerIn: parent
        height: 100
        width: parent.width/2 + parent.width/3
        color: "blue"
    }
}

Nell'esempio, eseguiamo operazioni aritmetiche sul valore che viene associato. Se ridimensionate la finestra dell'applicazione in esecuzione alla larghezza massima, lo spazio tra il rettangolo e la finestra dell'applicazione sarà più ampio e viceversa.

Crea associazioni con file QML creati dinamicamente

Quando si utilizzano istanze di file QML dichiarandoli direttamente, ogni property crea un'associazione. Questo è spiegato negli esempi sopra.

Ecco come si creano dinamicamente i componenti:

var component = Qt.createComponent("Popup.qml");
var popup = component.createObject(parent, {"width": mainWindow.width, "height": mainWindow.height});

Quando la dimensione della mainWindow cambia, la dimensione del PopUp creato non è influenzata. Per creare un legame, imposta la dimensione del popup questo modo:

var component = Qt.createComponent("Popup.qml");
var options = {
    "width": Qt.binding(function() { return mainWindow.width }),
    "height": Qt.binding(function() { return mainWindow.height }),
};
var popup = component.createObject(parent, options);

Ora la dimensione del PopUp dipenderà da mainWindow .



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow