View Full Version : How to use QMimeData to pass a list of pointers
Seishin
1st May 2013, 21:08
I'm try use to use QMimeData to pass a list of pointers of a custom defined class, such like
QList<MyClass *> in drag and drop.
I think I shuold use the setData() funtion of QMimeData, but I have no idea how to put the list into it.
Thanks in advance.
wysota
1st May 2013, 22:39
Serialize pointers into a byte array and pass that into QMimeData. However usually it would be better to serialize the data behind the pointers instead.
Seishin
1st May 2013, 22:59
Could you give me an example of serializing pointers into QByteArray?
wysota
2nd May 2013, 01:15
Convert them into integers and store in the array directly or using QDataStream.
ChrisW67
2nd May 2013, 01:21
You might find quintptr useful for the static cast.
anda_skoa
3rd May 2013, 22:14
Even if it is possible to do that (seralizing pointers into a text representation) I suggest you stay away from it as far as possible (as in: don't do it at all).
This is an extremly bad hack, requires reinterpret_cast, has no runtime safety at all, and so on.
If you need access to the same list in multiple locations in your program, do it in a way that is independent of drag&drop. E.g. as a member in an object that both locations have access to, or in a singleton, etc.
Cheers,
_
Powered by vBulletin® Version 4.2.5 Copyright © 2024 vBulletin Solutions Inc. All rights reserved.