使用动态创建的 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