[Qt-interest] What is the use of QWeakPointer
Matthias Pospiech
matthias.pospiech at gmx.de
Fri Apr 9 14:55:03 CEST 2010
Dan Milburn schrieb:
> Thiago Macieira wrote:
>
>> Em Sexta-feira 09 Abril 2010, às 12:02:02, Dan Milburn escreveu:
>>
>>> QWeakPointer<MyObject> weakPointer = ...
>>> MyObject *o = weakPointer.data();
>>> if( o )
>>> {
>>> // Do something with o
>>> }
>>>
>>> Obviously this would cause problems in a multi-threaded environment, but
>>> then I don't think QWeakPointer is suitable for that.
>>>
>> The "proper" way is:
>>
>> QSharedPointer<MyObject> sp = weakPointer;
>> if ( sp ) {
>> // do something with the shared pointer
>> // and it won't get deleted
>> }
>>
>>
>
> However this won't work if the weak pointer was initialized from a
> QObject, which seemed to be what the OP was trying to do.
>
>
Indeed, and as far as I understood from the docs - a weakpointer can
only be constructed with a QObject based class.
Thus I am little confused.
Matthias
More information about the Qt-interest-old
mailing list