Thank you for advice. Indeed, there is note about it in Qt documentation. > NOTE: A QObject singleton type instance returned from a singleton type provider is owned by the QML engine unless the object has explicit QQmlEngine::CppOwnership flag set.
But I can't use exactly that way. I need an instance of QQmlEngine in my class. I was looking for a method like the following for attached objects. template<typename T> QObject *qmlAttachedPropertiesObject(const QObject *attachee, bool create = true) As I see, there is no such. May be I should develop my own. 2018-01-15 17:58 GMT+07:00 Pierre-Yves Siret <py.si...@gmail.com>: > You could do an usual c++ singleton > > Foo& Foo::instance() > { > static Foo foo; > return foo; > } > > And use that in c++ and also in the singleton provider for QML : > > qmlRegisterSingletonType<Foo>("com.example", 1, 0, "Foo", &Foo::create); > > QObject* Foo::create(QQmlEngine*, QJSEngine*) > { > Foo* foo = &instance(); > QQmlEngine::setObjectOwnership(foo, QQmlEngine::CppOwnership); > return foo; > } > > 2018-01-15 7:35 GMT+01:00 Лагнер, Сергей <develo...@lagner.ru>: > >> Hi >> >> It's exactly what I need. >> I thought about such solution but compile new component, >> create instance of it... seems like huge amount of extra work. >> And it is kind of tricky. I was hoping the other way exists. >> >> But thank you anyway. >> >> 2018-01-14 16:41 GMT+07:00 Ben Lau <xben...@gmail.com>: >> >>> >>> You may take this piece of code as an example: >>> >>> https://github.com/benlau/quickflux/blob/master/qfappdispatcher.cpp#L51 >>> >>> On 14 January 2018 at 17:09, Лагнер, Сергей <develo...@lagner.ru> wrote: >>> >>>> Hello all. >>>> I have two classes registered as qml singletons. >>>> >>>> >>>> QObject * First::create(QQmlEngine*, QJSEngine*) { >>>> return new First(); >>>> } >>>> >>>> QObject * Second::create(QQmlEngine*, QJSEngine*) { >>>> return new Second(); >>>> } >>>> >>>> qmlRegisterSingletonType<First>("com.example", 1, 0, "First", >>>> &First::create); >>>> qmlRegisterSingletonType<Second>("com.example", 1, 0, "Second", >>>> &Second::create); >>>> >>>> >>>> >>>> Now I'd like to have an access to one of them from another. >>>> For example >>>> >>>> void Second::method() { >>>> // I need First * instance here >>>> } >>>> >>>> Is there any way to get qml singleton instance on C++ side, from >>>> QQmlEngine or something? >>>> >>>> --- >>>> Have a nice day. >>>> Sergey >>>> >>>> _______________________________________________ >>>> Interest mailing list >>>> Interest@qt-project.org >>>> http://lists.qt-project.org/mailman/listinfo/interest >>>> >>>> >>> >> >> _______________________________________________ >> Interest mailing list >> Interest@qt-project.org >> http://lists.qt-project.org/mailman/listinfo/interest >> >> >
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest