[Interest] Access QVariant's raw data
Jonas Gehring
jonas.gehring at boolsoft.org
Sun Apr 8 16:43:52 CEST 2012
On 4/8/12 3:29 PM, Thiago Macieira wrote:
> On domingo, 8 de abril de 2012 13.00.28, Jonas Gehring wrote:
>> Hi Thiago,
>>
>> On 4/8/12 5:16 AM, Thiago Macieira wrote:
>>>> QVariant result = ...; // Just received from thread
>>>> QMetaMethod method = ...; // Pass the result to this method
>>>> method.invoke(receiver, QGenericArgument(result.typeName(),
>>>>
>>>> result.value<void *>()));
>>>
>>> You're not supposed to use QGenericArgument directly. Use Q_ARG.
>>
>> Thanks for your clarifications. Is there a way to achieve the desired
>> behavior with Q_ARG? The main point is that I don't know the actual type
>> of the result, but the QVariant does (although not via templates,
>> apparently).
>
> Then take a look at what Q_ARG does and replicate it for your code. It does
> not involve value<void *>().
Q_ARG(type, data) is defined as QArgument<type>(#type, data), but I
can't write it that way since I don't have the actual type of result and
thus can't use templates.
Anyway, I managed to achieve the desired behaviour by constructing a
QGenericArgument whit QVariant.constData(). If you happen to know
another way to manage this without templates, please let me know.
Regards,
Jonas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 258 bytes
Desc: OpenPGP digital signature
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20120408/9588a87e/attachment.sig>
More information about the Interest
mailing list