Javascript Qt不';不创建组件并且不';不要返回错误

Javascript Qt不';不创建组件并且不';不要返回错误,javascript,qt,qt-quick,Javascript,Qt,Qt Quick,我正在尝试使用QT动态创建一个元素,但是它不工作,并且没有打印错误消息。镇静。状态从未准备好。它甚至不进入componeet.Error阶段:( Column.qml基本上包含ColumnLayout元素。我做错了什么?在qml中动态创建组件是一个多步骤的过程。调用Qt.createComponent()只是第一步。下面将详细介绍 在许多简单的情况下,组件会立即加载,您可以执行以下操作: // Create our Component var myComponent = Qt.createCom

我正在尝试使用QT动态创建一个元素,但是它不工作,并且没有打印错误消息。镇静。状态从未准备好。它甚至不进入componeet.Error阶段:(


Column.qml基本上包含ColumnLayout元素。我做错了什么?

在qml中动态创建组件是一个多步骤的过程。调用Qt.createComponent()只是第一步。下面将详细介绍

在许多简单的情况下,组件会立即加载,您可以执行以下操作:

// Create our Component
var myComponent = Qt.createComponent("foobar.qml");

// Instantiate the Component's object, give it a parent, and set its properties
var foobar = myComponent.createObject(parentObject, {"x": 0, "y": 0});
但在更复杂的情况下,您必须附加到组件的statusChanged信号。上面的文档中有一个完整的示例,我将其复制并粘贴到此处以供参考:

var component;
var sprite;

function createSpriteObjects() {
    component = Qt.createComponent("Sprite.qml");
    if (component.status == Component.Ready)
        finishCreation();
    else
        component.statusChanged.connect(finishCreation);
}

function finishCreation() {
    if (component.status == Component.Ready) {
        sprite = component.createObject(appWindow, {"x": 100, "y": 100});
        if (sprite == null) {
            // Error Handling
            console.log("Error creating object");
        }
    } else if (component.status == Component.Error) {
        // Error Handling
        console.log("Error loading component:", component.errorString());
    }
}

Component不是一个保留关键字吗?你试过给这个变量命名吗?@Ericsir我意识到在写了这个问题后,尝试了另一个变量,仍然不起作用。
var component;
var sprite;

function createSpriteObjects() {
    component = Qt.createComponent("Sprite.qml");
    if (component.status == Component.Ready)
        finishCreation();
    else
        component.statusChanged.connect(finishCreation);
}

function finishCreation() {
    if (component.status == Component.Ready) {
        sprite = component.createObject(appWindow, {"x": 100, "y": 100});
        if (sprite == null) {
            // Error Handling
            console.log("Error creating object");
        }
    } else if (component.status == Component.Error) {
        // Error Handling
        console.log("Error loading component:", component.errorString());
    }
}