[Interest] QListView: drag&drop custom item

Frank Rueter | OHUfx frank at ohufx.com
Thu Aug 18 01:58:33 CEST 2016


Thanks, but that still causes the default drag&drop behaviour to drop a 
QStandardItem rather than the subclassed custom item that was dragged. 
It's not the data that is the issue but the class type itself.

I have now refactored my code to use QStdandardItem instead of a custom 
one which makes it all work, but I'd still be quite interested to know 
the best way to do this (drag&drop a custom item between two QListViews 
in the same application).


Cheers,
frank

On 17/08/16 8:24 PM, Viktor Engelmann wrote:
>
> The QStandardItem seems to be used to limit the drag&drop to files, 
> images, text etc. so that you can drag & drop from and to external 
> applications (which is not possible for general objects).
>
> http://doc.qt.io/qt-4.8/qstandarditem.html#subclassing says you should 
> subclass QStandardItem and override read and write or data and 
> setData. That is probably used to marshal and unmashal the objects, to 
> make them compatible to text, which can be passed to and from external 
> applications.
>
> Viktor
>
>
> On 16.08.2016 23:56, Frank Rueter | OHUfx wrote:
>> Anybody?
>> I can find plenty of examples on how to drag items from a view to a 
>> widget but can't find anything about dragging a custom item from one 
>> view to another.
>> Guess I will start to re-implement the entire drag&drop, maybe the 
>> solution will become apparent then.
>>
>>
>> On 16/08/16 7:26 PM, Frank Rueter | OHUfx wrote:
>>> Hi,
>>>
>>> I am trying to get drag&drop to work between two QListViews using a 
>>> custom item.
>>> I can't find the info I need online other than this document 
>>> <https://doc.qt.io/archives/4.6/model-view-dnd.html> which helped a 
>>> little bit but now I'm stuck.
>>>
>>> Drag&drop from one QListView to another works fine when I use a 
>>> QStandardItem to hold my data, but when I use a custom item I run 
>>> into trouble, because the receiving model/view creates a 
>>> QStandardItem when the incoming custom items are dropped.
>>>
>>> Ideally I could tell the receiving model to use my custom item as 
>>> the default item and otherwise just do it's thing, but I suppose it 
>>> won't be that easy?!
>>> I have played around with the receiving model's dropMimeData() and 
>>> insertRows() methods but can't work out how to read the incoming 
>>> data to then insert a custom item into the receiving model manually.
>>> In QAbstractItemModel.dropMimeData() I tried reading 
>>> mimeData.data('application/x-qabstractitemmodeldatalist'), but that 
>>> returns a byte stream that I don't know how to handle.
>>>
>>> Do I have to re-implement the sender's drag data as well to send the 
>>> custom item in the first place?
>>>
>>> It seems that everything works out of the box except the creation of 
>>> the QStandardItem upon drop, rather than my custom item, so I am 
>>> hoping I don't have to re-invent the (drag&drop) wheel just to get 
>>> that one part right?!
>>>
>>> Any advise would be greatly appreciated.
>>>
>>> Thanks,
>>> frank
>>>
>>>
>>>
>>> -- 
>>> ohufxLogo 50x50 <http://www.ohufx.com> 	*vfx compositing 
>>> <http://ohufx.com/index.php/vfx-compositing> | *workflow 
>>> customisation and consulting 
>>> <http://ohufx.com/index.php/vfx-customising>* *
>>>
>>>
>>>
>>> _______________________________________________
>>> Interest mailing list
>>> Interest at qt-project.org
>>> http://lists.qt-project.org/mailman/listinfo/interest
>>
>>
>>
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
>
> -- 
>
>
> Viktor Engelmann
> Software Engineer
>
> The Qt Company GmbH
> Rudower Chaussee 13
> D-12489 Berlin
> Viktor.Engelmann at qt.io
> +49 151 26784521
> http://qt.io
>
> Geschäftsführer: Mika Pälsi, Juha Varelius, Mika Harjuaho
> Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht 
> Charlottenburg, HRB 144331 B
> <http://qt.io>
> <http://www.facebook.com/Qt> 	<http://www.twitter.com/qtproject> 
> <https://www.linkedin.com/company/the-qt-company/> 
> <https://plus.google.com/104580575722059274792> 
> <https://www.youtube.com/QtStudios>
>
>
>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160818/9cada573/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 2666 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160818/9cada573/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 16849 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160818/9cada573/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 1407 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160818/9cada573/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 1778 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160818/9cada573/attachment-0003.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 1532 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160818/9cada573/attachment-0004.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 1957 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160818/9cada573/attachment-0005.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/png
Size: 1610 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160818/9cada573/attachment-0006.png>


More information about the Interest mailing list