Another useful one: Q_INVOKABLE QString MySingleton::ownership( QObject * object ) const { auto ownership = QQmlEngine::contextForObject(object)->engine() ->objectOwnership(object); switch(ownership) { case QQmlEngine::CppOwnership: return QString("CppOwnership"); case QQmlEngine::JavaScriptOwnership: return QString("JavaScriptOwnership"); default: break; } return QString("error"); }
On Thu, Mar 10, 2016 at 1:07 PM, Jérôme Godbout <jer...@bodycad.com> wrote: > You can create a C++ method for this, expose it into a C++ singleton to > easily access it: > > Q_INVOKABLE QString MySingleton::idName(QObject * object) const > { > const auto context = qmlContext(object); > return context ? context->nameForObject(object): QString("context not > found"); > } > > http://doc.qt.io/qt-5/qqmlcontext.html#nameForObject > > For Qml it return the context id. > > Other useful methods would be address and file where the object come from: > Q_INVOKABLE QString MySingleton::objHexAddress(QObject * object) const > { > return QString().sprintf("%08p", object); > } > > Q_INVOKABLE QUrl MySingleton::whereAmIDeclared(QObject * object) const > { > if (object) > if (auto context = QQmlEngine::contextForObject(object)) > return context->baseUrl(); > return QUrl(); > } > > This help a lot to debug into the console. > Regards, > Jerome > > On Thu, Mar 10, 2016 at 12:45 PM, Jason H <jh...@gmx.com> wrote: > >> Yes, Ideally what I want: >> 1. Be able to get object id as string >> 2. Search the object heirarchy for that string and get that object >> >> *Sent:* Thursday, March 10, 2016 at 12:14 PM >> *From:* "Dmitry Volosnykh" <dmitry.volosn...@gmail.com> >> *To:* "Jason H" <jh...@gmx.com>, "interest@qt-project.org" < >> interest@qt-project.org> >> *Subject:* Re: [Interest] QML id property to string? >> I feel the same need frequently, too. Without such feature I have to set >> objectName by copy-pasting and qouting id. This is quite annoying. >> >> On Thu, Mar 10, 2016 at 8:08 PM Jason H <jh...@gmx.com> wrote: >> >>> A few times now, I've wanted to display the id as a string. Usually when >>> something goes wrong on the console, but sometimes in a hash/map. I've got >>> a function that takes an object (QML item) and does some processing on it. >>> Is there a way to get it? I know I can just set a property, but then that >>> has to be maintained separately. >>> _______________________________________________ >>> 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