qml
속성 바인딩
수색…
비고
객체의 속성에는 명시 적으로 새 값이 할당 될 때까지 일정한 정적 값이 할당 될 수 있습니다. 그러나 QML과 동적 객체 비헤이비어에 대한 지원 기능을 최대한 활용하기 위해 대부분의 QML 객체는 속성 바인딩을 사용합니다.
속성 바인딩은 QML의 핵심 기능으로 개발자가 여러 개체 속성 간의 관계를 지정할 수있게합니다. 속성의 종속성이 값이 변경되면 속성은 지정된 관계에 따라 자동으로 업데이트됩니다.
속성 바인딩에 대한 기본 사항
이 간단한 예를 생각해보십시오.
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"
}
}
위의 예제에서 Rectangle 의 너비는 부모의 너비에 바인딩됩니다. 실행중인 응용 프로그램 창의 너비를 변경하면 사각형의 너비도 변경됩니다.
더 복잡한 예제
간단한 예제에서는 직사각형의 너비를 부모의 너비로 간단히 설정합니다. 보다 복잡한 예제를 살펴 보겠습니다.
ApplicationWindow {
visible: true
width: 400
height: 640
Rectangle{
id: rect
anchors.centerIn: parent
height: 100
width: parent.width/2 + parent.width/3
color: "blue"
}
}
이 예에서 우리는 바인드되는 값에 대해 산술 연산을 수행합니다. 실행중인 응용 프로그램 윈도우의 크기를 최대 너비로 조정하면 사각형과 응용 프로그램 윈도우 사이의 간격이 넓어지고 반대의 경우도 마찬가지입니다.
동적으로 생성 된 QML 파일로 바인딩 만들기
QML 파일의 인스턴스를 직접 선언하여 사용하면 모든 property 이 바인딩을 만듭니다. 위의 예에서 설명합니다.
이것은 동적으로 구성 요소를 만드는 방법입니다.
var component = Qt.createComponent("Popup.qml");
var popup = component.createObject(parent, {"width": mainWindow.width, "height": mainWindow.height});
mainWindow 의 크기가 변경되면 생성 된 PopUp 의 크기는 영향을받지 않습니다. 바인딩을 만들려면 다음과 같이 popup 크기를 설정하십시오.
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);
이제 PopUp 의 크기는 mainWindow 달려 있습니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow