C++ 为什么我会得到一个“;QDeclarativeComponent:组件未就绪“;错误?

C++ 为什么我会得到一个“;QDeclarativeComponent:组件未就绪“;错误?,c++,qt,qml,C++,Qt,Qml,我做了几件事,但只限于一个特定的例子。代码如下 MyItem.qml import QtQuick 1.0 Item { function myQmlFunction(msg) { console.log("Got message:", msg) return "some return value" } } main.cpp QDeclarativeEngine engine; QDeclarativeComponent co

我做了几件事,但只限于一个特定的例子。代码如下

MyItem.qml

 import QtQuick 1.0

 Item {
     function myQmlFunction(msg) {
         console.log("Got message:", msg)
         return "some return value"
     }
 }
main.cpp

 QDeclarativeEngine engine;
 QDeclarativeComponent component(&engine, "MyItem.qml");
 QObject *object = component.create();

 QVariant returnedValue;
 QVariant msg = "Hello from C++";
 QMetaObject::invokeMethod(object, "myQmlFunction",
         Q_RETURN_ARG(QVariant, returnedValue),
         Q_ARG(QVariant, msg));

 qDebug() << "QML function returned:" << returnedValue.toString();
 delete object;
QDeclarativeEngine发动机;
QDeclarativeComponent组件(&engine,“MyItem.qml”);
QObject*object=component.create();
QVariant返回值;
QVariant msg=“你好,来自C++”;
QMetaObject::invokeMethod(对象,“myQmlFunction”,
Q_RETURN_ARG(QVariant,returnedValue),
Q_ARG(QVariant,msg));

qDebug()在QML中创建组件时,第一步是解析QML文件。调用时会发生以下情况:

QDeclarativeComponent component(&engine, "MyItem.qml");
然后,在调用
QDeclarativeComponent::create
之前,必须等待组件状态转移到
Ready
。您可以通过处理信号来跟踪状态变化

组件准备就绪后创建组件实例