[Interest] QVariant cannot take custom type

Pritam Ghanghas Pritam_Ghanghas at infosys.com
Fri Apr 5 13:00:21 CEST 2013


use gdb and see where exactly it segfaults. That will give better pointers than random guesses.
You can try posting backtrace here.
________________________________
From: interest-bounces+pritam_ghanghas=infosys.com at qt-project.org [interest-bounces+pritam_ghanghas=infosys.com at qt-project.org] on behalf of Aekold Helbrass [helbrass at gmail.com]
Sent: Friday, April 05, 2013 4:15 PM
To: Conti Manuele
Cc: Qt-interest Interest
Subject: Re: [Interest] QVariant cannot take custom type

Thanx, that one was close, but still segfault:

        QSharedPointer<Item> pointer(item);

        QVariant var = QVariant::fromValue(pointer);

        list.append(var);



On Fri, Apr 5, 2013 at 1:33 PM, Conti Manuele <conti.ma at alice.it<mailto:conti.ma at alice.it>> wrote:
Hi All,
There is a problem in your code, actually I use this and work perfectly:
Q_DECLARE_METATYPE(QSharedPointer<QPlcServerSocket::QExternalCommand>)
qRegisterMetaType< QSharedPointer<QPlcServerSocket::QExternalCommand> >();


Bye

On 04/05/2013 12:27 PM, Samuel Gaist wrote:
> He explains how to handle QObject * so a pointer to QObject instance, not a QObject instance.
>
> On 5 avr. 2013, at 12:22, Aekold Helbrass wrote:
>
>> So, it is absolutely impossible to use QObject-derived class with QVariant? I'm storing QList of pointers already, and I want to write that with QMetaProperty. The only thing that needs copy-constructor, in my understanding, is qRegisterMetaType invocation.
>>
>> I even read an article where guy explains how to get other types than one you're storing, so it looks like there is no problem in storing QObject in QVariant, but for some reason it doesn't work for me:
>> http://steveire.wordpress.com/2011/03/16/implementing-qvariantqmetatype-features-with-template-tricks/
>>
>>
>> On Fri, Apr 5, 2013 at 12:44 PM, André Somers <andre at familiesomers.nl<mailto:andre at familiesomers.nl>> wrote:
>> Op 5-4-2013 11:39, Sven Bergner schreef:
>>> Hello,
>>> you can use a custom type with QVariant by declaring it
>>> using Q_DECLARE_METATYPE ( Type ).
>>> Hope that helps.
>>>
>> It does not. That was already in the code posted in the opening post. As
>> noted by others, the issue lies with trying to use a QObject derived
>> class here.
>>
>> André
>>
>> --
>> You like Qt?
>> I am looking for collegues to join me at i-Optics!
>>
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org<mailto:Interest at qt-project.org>
>> http://lists.qt-project.org/mailman/listinfo/interest
>>
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org<mailto:Interest at qt-project.org>
>> http://lists.qt-project.org/mailman/listinfo/interest
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org<mailto:Interest at qt-project.org>
> http://lists.qt-project.org/mailman/listinfo/interest
>

_______________________________________________
Interest mailing list
Interest at qt-project.org<mailto:Interest at qt-project.org>
http://lists.qt-project.org/mailman/listinfo/interest


**************** CAUTION - Disclaimer *****************
This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely 
for the use of the addressee(s). If you are not the intended recipient, please 
notify the sender by e-mail and delete the original message. Further, you are not 
to copy, disclose, or distribute this e-mail or its contents to any other person and 
any such actions are unlawful. This e-mail may contain viruses. Infosys has taken 
every reasonable precaution to minimize this risk, but is not liable for any damage 
you may sustain as a result of any virus in this e-mail. You should carry out your 
own virus checks before opening the e-mail or attachment. Infosys reserves the 
right to monitor and review the content of all messages sent to or from this e-mail 
address. Messages sent to or from this e-mail address may be stored on the 
Infosys e-mail system.
***INFOSYS******** End of Disclaimer ********INFOSYS***



More information about the Interest mailing list