[Qt-interest] What is the use of QWeakPointer

Dan Milburn danmilburn at clara.co.uk
Fri Apr 9 14:46:54 CEST 2010


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.

Dan



More information about the Qt-interest-old mailing list