gpt4 book ai didi

c++ - 我可以从 C++ 访问包含 QtObject 的 QQmlContext 吗?

转载 作者:太空宇宙 更新时间:2023-11-04 12:59:51 27 4
gpt4 key购买 nike

我有一个类似单例的辅助对象,但是,我不想成为一个真正的单例,因为我更喜欢把东西放在堆栈/堆上。所以我在堆上创建它并将它设置为我的根 QQmlContext 的 contextProperty。我还有一个 C++ 中的 QObject 子类,它在 QQmlContext 的对象树中实例化。

我能否从 C++ 访问包含 QObject 的 QQmlContext,以获取相关的 contextProperty?

我知道我可以做这样的事情:

// in main.cpp
engine.rootContext()->setContextProperty("_cp", cp);

// in foo.qml
MyQObjectSubclass {
cp: _cp
}

// in myqobjectsubclass.h:
// (macro from http://syncor.blogspot.bg/2014/11/qt-auto-property.html)
AUTO_PROPERTY(MyQObjectSubclass*, cp)

但这意味着我必须始终使用“cp: _cp”样板来阻塞我的 MyQObjectSubclass QML 实例。

最佳答案

我刚刚找到一个方法:

QQmlEngine::contextForObject(myQObject)

还没试过

等价于:

#include <QtQml>

// ...

qmlContext(myQObject);

关于c++ - 我可以从 C++ 访问包含 QtObject 的 QQmlContext 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44680457/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com