簡體   English   中英

我可以從C ++訪問包含QtObject的QQmlContext嗎?

[英]Can I access, from C++, the QQmlContext in which a QtObject is contained?

我有一個sorta-singleton幫助對象,但是,我不想成為一個單例,因為我更喜歡把東西放在堆棧/堆上。 所以我在堆上創建它並將其設置為我的根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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM