使用Qt拖放:在悬停时了解目标应用程序 - 是否可能?

swa*_*log 19 c++ qt drag-and-drop

我目前正在探索从Qt应用程序拖放到未知目标应用程序的可能性.问题是Qt应用程序是否有可能接收即将接收丢弃的应用程序的信息(例如进程名称或标题).

一个(组成)示例可能是将绘图从Qt窗口拖动到文本编辑器或电子表格编辑器.在前者中,它将数据作为图像提供,后者作为数据点.

似乎Qt在悬停时有点意识到丢弃的基础目标是什么,因为在改变DropAction状态时会发出actionChanged信号.如果我没有弄错的话,似乎目标应用程序会查看拖动对象中包含的mime类型,并指示该操作将被放置在那里.我也没有从targetChanged信号中获取任何信息(据我所知,这是在当前的Qt应用程序中丢弃).

任何指针都会有所帮助,我很乐意跟进.

Kam*_*mek 0

您可以向拖动 MIME 数据添加多种数据类型。在创建可拖动数据时,您可以放置​​图像和点数据(具有适当的 mime 类型),每个应用程序将决定它接受哪些数据以及如何解释它。

有关更多详细信息,请查看https://doc.qt.io/qt-5/dnd.html#dragging