C++ 为什么我会得到一个“;QDeclarativeComponent:组件未就绪“;错误?
我做了几件事,但只限于一个特定的例子。代码如下 MyItem.qmlC++ 为什么我会得到一个“;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
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
。您可以通过处理信号来跟踪状态变化
组件准备就绪后创建组件实例