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