Qt4 从C+访问QML对象的属性+;withoun Q_属性定义

Qt4 从C+访问QML对象的属性+;withoun Q_属性定义,qt4,qml,qt-quick,Qt4,Qml,Qt Quick,我知道,可以使用自定义属性定义QObject并在QML环境中公开该对象。但是这样,对于每个新的属性,我需要重新编译C++代码。 是否可以从C++/Qt到QML对象进行动态绑定? 比如: //C++ code: updateProperty("myQmlObject.any_property", "Hello World"); 谢谢大家! 已解决: _view->rootContext()->setContextProperty( "cppmessage" , "Hello fro

我知道,可以使用自定义属性定义QObject并在QML环境中公开该对象。但是这样,对于每个新的属性,我需要重新编译C++代码。 是否可以从C++/Qt到QML对象进行动态绑定? 比如:

//C++ code: 
updateProperty("myQmlObject.any_property", "Hello World");
谢谢大家!

已解决:

_view->rootContext()->setContextProperty( "cppmessage" , "Hello from C++" );
其中:view是一个QDeclarativeView,cppmessage在QML中使用,没有事先声明,如:“text:cppmessage”

此链接可用于查找解决方案:

是的,可以这样做

//MyItem.qml
导入QtQuick 1.0
项目{
属性int someNumber:100
}
//C++
QDEcrativeEngine发动机;
QDeclarativeComponent组件(&engine,“MyItem.qml”);
QObject*object=component.create();

谢谢你的回答。我发现,悬停似乎很简单:setContextProperty。无论如何谢谢你!我想这也是另一种方法,我会把它添加到答案中。
// MyItem.qml
import QtQuick 1.0

Item {
    property int someNumber: 100
}

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

qDebug() << "Property value:" << QDeclarativeProperty::read(object,"someNumber").toInt();
QDeclarativeProperty::write(object, "someNumber", 5000);

qDebug() << "Property value:" << object->property("someNumber").toInt();
object->setProperty("someNumber", 100);