Szukaj…


Uwagi

Właściwości obiektu można przypisać wartość statyczną, która pozostaje stała, dopóki nie zostanie mu jawnie przypisana nowa wartość. Jednak aby w pełni wykorzystać QML i jego wbudowaną obsługę dynamicznych zachowań obiektów, większość obiektów QML używa powiązań właściwości.

Powiązania właściwości są podstawową cechą QML, która pozwala programistom określać relacje między różnymi właściwościami obiektu. Gdy zależności właściwości zmieniają się, właściwość jest automatycznie aktualizowana zgodnie z określoną relacją.

Podstawy powiązań właściwości

Rozważ ten prosty przykład:

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"
    }
}

W powyższym przykładzie szerokość Rectangle jest powiązana z szerokością jego rodzica. W przypadku zmiany szerokości działającego okna aplikacji zmienia się również szerokość prostokąta.

Bardziej skomplikowany przykład

W prostym przykładzie po prostu ustawiamy szerokość prostokąta na szerokość jego rodzica. Rozważmy bardziej skomplikowany przykład:

ApplicationWindow {
    visible: true
    width: 400
    height: 640

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

W tym przykładzie wykonujemy operację arytmetyczną na powiązanej wartości. Jeśli zmienisz rozmiar działającego okna aplikacji do maksymalnej szerokości, odstęp między prostokątem a oknem aplikacji będzie większy i odwrotnie.

Twórz powiązania z dynamicznie tworzonymi plikami QML

Podczas korzystania z wystąpień plików QML przez bezpośrednie ich zadeklarowanie każda property tworzy powiązanie. Zostało to wyjaśnione w powyższych przykładach.

Oto jak dynamicznie tworzysz komponenty:

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

Kiedy zmienia się rozmiar mainWindow , nie ma to wpływu na rozmiar tworzonego PopUp . Aby utworzyć powiązanie, ustaw rozmiar popup następujący sposób:

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);

Teraz rozmiar PopUp będzie zależeć od mainWindow .



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow