qml
Wiązanie własności
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 .