[Qt-interest] Drag and Drop when source is deleted

Martin Grossberger mgrossberger at andtek.com
Fri May 20 11:48:58 CEST 2011


> Den 20-05-2011 11:40, Martin Grossberger skrev:
>>> Hi
>>>
>>> Am 20.05.2011 11:04, schrieb Martin Grossberger:
>>>> However, the program still crashes before I can even check if the 
>>>> widget
>>>> still exists on dropping.
>>> Maybe it's not what you are dragin, but the drag object itself. Is it
>>> created on the heap or is there a possibility that it gets destroyed if
>>> the corresponding widget gets deleted while you are dragging?
>>>
>>> Alex
>>> _______________________________________________
>>> Qt-interest mailing list
>>> Qt-interest at qt.nokia.com
>>> http://lists.qt.nokia.com/mailman/listinfo/qt-interest
>> Hi,
>>
>> It is created on the heap. I've hacked together a minimalistic program
>> to reproduce the issue, and it has the same issue.
>> To reproduce the issue:
>>
>>    1. Compile the code attached
>>    2. Start dragging the DragWidget and hold it for 5 seconds
>>    3. After those 5 seconds the DragWidget gets deleted, if you drop
>>       now, the program will crash
>
> That's because you have created the drag object with the widget as 
> QObject parent. So when the widget is deleted, so is the drag object.
>
> Don't do that :)
>
> Bo Thorsen,
> Fionia Software.
>
Can you send me a line of code how this should work?
If I change the creation of the drag to:
QDrag *drag = new QDrag(0);
then no drag is actually happening.

Kind Regards,
Martin Grossberger



More information about the Qt-interest-old mailing list