我现在真的很困惑
有什么区别
QQmlApplicationEngine engine;
engine.rootContext().setContextProperty("myObject",&userData);
and
object->setProperty("myObject", myObject)
这是 QML 文件
ApplicationWindow {
id: applicationWindow1
Item {
id: propertyHolder
property MyObject myObject
}
我已经阅读了如何使用 QML 绑定,但仍然没有弄清楚。请帮忙
谢谢
编辑:=======================
我在这里附上了代码片段
ApplicationWindow {
id: applicationWindow1
Item {
id: propertyHolder
property MyClass myClass
}
Button {
onClicked :
propertyHolder.myClass.doSomething()
}
main.cpp
QQmlApplicationEngine engine;
QQmlContext* context = engine.rootContext();
MyClass myClass;
context->setContextProperty("myClass",&myClass);
engine.load(QUrl("qrc:///mainControl.qml"));
当我单击按钮时,它给了我一个调用方法的空错误
我哪里做错了?
setProperty
是的成员QObject
并用于设置一个属性的值QObject
. While setContextProperty
是的成员QQmlContext
类,用于设置 qml 上下文上名称属性的值。您可以在 Qt 文档中阅读有关QQmlContext
:
每个 QQmlContext 都包含一组属性,不同于它的
QObject 属性,允许数据显式绑定到
按名称的上下文。上下文属性由以下方式定义和更新
调用 QQmlContext::setContextProperty()。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)