我从QListWidgetItem
创建一个拖动对象。
我可以在此拖动对象中将文本作为mime数据发送。
如何发送像素图并从mime数据中检索它?
甚至可以创建QGraphicsItem
并检索它吗?
我试图拖动&从QListWidget
下降到QGraphicsView
。
答案 0 :(得分:5)
通过QPixmap
发送QMimeData
的方法有多种:
image/png
发送(QMimeData
内置支持,参见QMimeData::imageData()
)。QPixmap
将QByteArray
序列化为QDataStream
并在特定于应用的mime类型application/x-app-name
下发送序列化。text/uri-list
为其发送文件URL(QMimeData
内置支持,参见{{1} })。这允许将这些图像拖到文件管理器或桌面上。QMimeData::urls()
,将其地址填入QGraphicsItem
并在特定于应用的mime类型下发送。当拖动在另一个进程中结束时,这不起作用(接收站点可以测试,因为QByteArray
在这种情况下返回QDragEvent::source()
),并且需要特别小心处理图形项的生命周期看作0
允许您一次传递多种格式,这些选项是非独占的。但是,您应该按照QMimeData
重新实现的顺序对返回的格式进行排序,以降低特异性,即您的应用私有格式排在第一位,QMimeData::formats()
排在最后。