[Interest] QML id property to string?

Jérôme Godbout jerome at bodycad.com
Thu Mar 10 19:10:41 CET 2016


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 <jerome at 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 <jhihn at 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.volosnykh at gmail.com>
>> *To:* "Jason H" <jhihn at gmx.com>, "interest at qt-project.org" <
>> interest at 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 <jhihn at 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 at qt-project.org
>>> http://lists.qt-project.org/mailman/listinfo/interest
>>
>>
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160310/1d8daa58/attachment.html>


More information about the Interest mailing list